selmertsxの素振り日記

ひたすら日々の素振り内容を書き続けるだけの日記

(#1)ふつうのLINUXプログラミング

1.2 プログラミング環境の準備

gccを5系の最新入れる必要があるらしい

➜  ~ gcc -dumpversion
4.2.1
➜  ~ brew install gcc5
==> Pouring gcc@5-5.4.0_1.el_capitan.bottle.tar.gz
🍺  /usr/local/Cellar/gcc@5/5.4.0_1: 1,391 files, 253.3MB
➜  ~ ln -s /usr/local/bin/gcc-5 /usr/local/bin/gcc
➜  ~ source ~/.zshrc
➜  ~ gcc -dumpversion
5.4.0

ということで、5.4.0のGCCを入れることができた。

1.3 gccを使ったbuild(1)

IDEを使わずに、コンパイルして実行してみる

# hello.cの作成
➜  c mkdir hello
➜  c cd hello
➜  hello vi hello.c
#include <stdio.h>

int main(int argc, char *argv[]){
  printf("Hello, World\n");
  return 0;
}
# build
➜  hello gcc hello.c
➜  hello ls
a.out   hello.c
➜  hello ./a.out
Hello, World

gccでbuildして ./xxx.out コマンドでコードを実行する。

1.4 gccを使ったbuild(2)

# -o optionを使って作るファイル名を指定する
➜  hello rm a.out
➜  hello gcc -o hello hello.c
➜  hello ls
hello   hello.c
➜  hello ./hello
Hello, World

1.5 コマンドライン引数

➜  hello touch args.c
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
  int i;
  printf("argc=%d\n", argc);
  for(i = 0; i<argc; i++){
    printf("argv[%d]=%s\n", i, argv[i]);
  }
  exit(0);
}
➜  hello gcc -o args args.c
➜  hello ./args
argc=1
argv[0]=./args
➜  hello ./args x y z #3つのコマンドライン引数 x, y, z
argc=4
argv[0]=./args
argv[1]=x
argv[2]=y
argv[3]=z
➜  hello ./args "x y z" # `"`で囲むと一つの文字列として扱える
argc=2
argv[0]=./args
argv[1]=x y z
➜  hello ./args *.c # globを使って引数を渡すこともできる。
argc=3
argv[0]=./args
argv[1]=args.c
argv[2]=hello.c