LoginSignup
0
1

More than 1 year has passed since last update.

ふつうのLinuxプログラミングをやってみる その1

Last updated at Posted at 2020-11-04

有名な本らしいので買ってみました

ふつうの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 が出てくる
image.png

man 3 printf すると、ライブラリ関数の printf が出てくる。同じ名前だが違うもの
image.png

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   カーネルルーチン [非標準]

https://laboradian.com/basic-usage-of-man-command-on-linux/

man 5 passwd を打つと、passwd コマンドじゃなくて /etc/passwd ファイルの説明が出る。ほえ〜〜〜

manを日本語にする

英語読める方ではありますがこの件モチベ低いので日本語でやろうかと。

sudo yum install man-pages-ja
export LANG=ja_JP.utf8
man 5 passwd

日本語になりました。これは勉強になりそう。man読めってのはこういうことなんだろうな
image.png

chapter 1 おわり


この本を読みながらやってます

ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道
ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1