LinuxとC言語超入門
自己紹介
すがわらりささん SE 設計 要件定義 Java
いむたさん 機械学習の研修が嫌になってきた 最適化問題
すももざわさん WSL以来 サーバー構築 windows vmware hyperbyser
ふるやさん インフラエンジニア SIer サーバー構築
Linuxとは
カーネルとシステムコール(LinuxのしくみP. 12、ふつうのLinuxプログラミングP. 30なども参照)
https://gyazo.com/b20673c827ff46bedb50a295754ff9d6
コマンドとは
pwd: print working directory
このような書き方をされていることが多い。$, %や#(ルートユーザを表している)はプロンプトと呼ばれ、入力できますよという意味
$ pwd
% pwd
# pwd
コマンドの呼んでいるシステムコールをみてみよう(LinuxのしくみP. 14)
下記のどちらかを実行
ご自身のターミナルまたは下記URLをクリックしてGitPodを立ち上げる
gcc -o hello hello.c
デバッグ中は-Wallオプションを渡して警告レベルを最大にするのが良い gcc -Wall -o hello hello.c
code:command
macOS
sudo dtruss ./hello
Linux
GitPodで使うときはもともとinstallしておかないといけない
strace ./hello
うまくいくと下の方に下記のようなシステムコールが出てくるはず
write(1, "hello world\n", 12)
C言語とは
C言語ポインタ小ネタ
コマンドを作ってみる
GitPodのかたはそのまま
args.cをやってみる(ふつうのLinux P. 17)
cat.cを実行してみる
cat.cで引数が与えられなかったとき、標準入力から読み込むように改造してみよう
参考