有名な本らしいので買ってみました
ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道
ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道
ふつうのLinuxプログラミングをやってみる その1
https://qiita.com/uturned0/items/b9ae846f2aff5865c074
ふつうのLinuxプログラミングをやってみる その2
https://qiita.com/uturned0/items/56beac990cdd6f1059ed
ふつうのLinuxプログラミングをやってみる その3
https://qiita.com/uturned0/items/675092da8aa89c4b1ff0
その4
https://qiita.com/uturned0/items/8f5765cfc0f0be8a1981
その5
https://qiita.com/uturned0/items/ab97deb489c994a836da
その6
https://qiita.com/uturned0/items/b7df48e87ae9170f3698
その7
https://qiita.com/uturned0/items/263151cf7c83bff7fac1
その7−3
https://qiita.com/uturned0/items/3fbf3ed6bb2a47325f59
ただのメモ書きです
chapter 1
引数を使う
# 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);
}
result
$ gcc -Wall -O2 args.c && ./a.out a b "c d"
argc=4
argv[0]=./a.out
argv[1]=a
argv[2]=b
argv[3]=c d
option
-Wall デバッグ情報をいい感じに出す
-O2 コンパイルが早くなるらしい。 -O3 が一番早いんだけどおすすめじゃないらしい
manの見方
man printf
だと普通はコマンド(ユーザコマンド)の printf が出てくる
man 3 printf
すると、ライブラリ関数の printf が出てくる。同じ名前だが違うもの
linuxのmanはcの関数まで引くことができるのだった。man strlen
すると strlen(3) がヒットする。user commandではないので、bashにstrlenと打っても使えない。あくまで c-langの中で記述するもの。
linux man のセクション分け
1 実行プログラム または シェルコマンド
2 システムコール(カーネルが提供している関数)
3 ライブラリーコール(プログラムライブラリ内の関数)
4 特殊ファイル(通常 /dev にあるファイル)
5 ファイルフォーマット と 規約(例 /etc/passwd)
6 ゲーム
7 その他(マクロパッケージや規約)
8 システム管理コマンド(通常はrootのみが使う)
9 カーネルルーチン [非標準]
man 5 passwd
を打つと、passwd コマンドじゃなくて /etc/passwd
ファイルの説明が出る。ほえ〜〜〜
manを日本語にする
英語読める方ではありますがこの件モチベ低いので日本語でやろうかと。
sudo yum install man-pages-ja
export LANG=ja_JP.utf8
man 5 passwd
日本語になりました。これは勉強になりそう。man読めってのはこういうことなんだろうな
chapter 1 おわり
この本を読みながらやってます
ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道
ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道