dockerでさくっとC言語の hello world


大学ぶりにC言語をやってみたいな〜と思い、dockerでサックとgccの環境を構築してみました。

gccのイメージが入ったコンテナを起動します。イメージを持っていない場合はdockerが自動でimageをプルしてくれます。

docker run -v "$PWD":/usr/src/myapp -w /usr/src/myapp -it gcc:4.9

# -v ローカルのvolumeをコンテナにマウント
# -w コンテナのworkdirを定義
# -it コンテナにログイン

早速c言語でハローワールド

app.c
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    printf("Hello World!\n");
    printf("ハローワールド!\n");

    return 0;
}

app.cをコンパイルし、実行ファイルを実行

$ gcc app.c -o a.out 
$ ./a.out

# 出力結果
# Hello World!
# ハローワールド!

番外編

stdlib.h + argv を使ったサンプル

app.c
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int i, result = 0;

    for (i = 1; i < argc; ++i)
    {
        printf("argv[%d] = %s\n", i, argv[i]);

        result += atoi(argv[i]);
    }

    printf("Total Sum = %d\n", result);

    return 0;
}

実行結果

$ gcc app.c -o a.out 
$ ./a.out 1 2 3

# 出力結果
# argv[1] = 1
# argv[2] = 2
# argv[3] = 3
# Total Sum = 6