へっぽこ社会人4年生がプログラミングを頑張る

へっぽこ社会人4年目がプログラミング系統を中心に書きたいことをつらつらと書きます

C

C の構造体へのポインタのキャストをちょっと理解する話

C

前回の記事 C のポインタへのキャストをちょっと理解する話 を書き終えた後、構造体へのポインタのキャストも同じように考えられるのではと思いました。 自分の理解が合っていることを確認するために、実際に簡易的なコードを書いて動かしてみました。 備忘…

C のポインタへのキャストをちょっと理解する話

C

マルチスレッドのプログラムの書き方を勉強するために、 C の pthreadsライブラリを使ったマルチスレッドプログラミングの参考書のサンプルコードを写経して動作を確認して勉強していました。 スレッドを作成する際に、 pthread_create() という関数を利用す…

システムコールで遊んでみる その4

今回は、システムコールforkやwaitなどについて書いていこうと思います。 forkを呼び出すことで、 子プロセスの生成が出来ます。 また、waitを呼び出すことで、 親プロセスが子プロセスの終了を待ちます。 以下にプログラム例を示します。 #include <stdio.h> #includ</stdio.h>…

Cの構造体へのポインタのキャストを考える

C

Cでソケットプログラミングをする時なんかに、 構造体struct sockaddr_inを bindやaccept, connectなどの関数に渡す際に、 struct sockaddr*にキャストして渡します。 正直、僕にとっては、構造体へのポインタのキャストって、 イメージしづらい と感じます…

システムコールで遊んでみる その3

今回はlseekというシステムコールについて、適当に書いていこうと思います。 lseekは、ファイルポインタを指定の位置に動かします。 プログラム例を以下に示します。 #include <fcntl.h> #include <unistd.h> int main(int argc, char **argv) { int fd; char buf[65536]; if(ar</unistd.h></fcntl.h>…

システムコールで遊んでみる その2

前回はreadとwriteについて書きました。 今回はopenとcloseについて、簡単に書いていこうと思います。 まだ自分自身も勉強途中なので、ちゃんとは説明出来ないんですけどね... 以下は引数に指定したファイルをオープンして標準出力に表示するプログラムです…

システムコールで遊んでみる その1

最近のマイブームは、 システムコールを使った Cプログラムを組むことです。 というわけで、 気が向いた時に、ちょいちょいと システムコールで遊んでみたことを 書いてみようかなと思います。 さて、前置きが長くなりましたが、 今回はreadと writeについて…