UNIX

ls2

次のプログラムは前回のlsコマンドの出力内容を改善し、ファイルモード、パーミッションを文字列で表示する ls2.c #include <stdio.h> #include <sys/types.h> #include <dirent.h> #include <sys/stat.h> #include <string.h> void do_ls(char []); void dostat(char *); void show_file_info(char *, struct stat </string.h></sys/stat.h></dirent.h></sys/types.h></stdio.h>…

ls1

lsの動作 lsはコマンド行引数がディレクトリならその内容をリストアップし、ファイルならその名前や属性を表示する。 ディレクトリとは、ファイルとディレクトリの名前のリストを含む一種のファイルである。ディレクトリはプレーンテキストを格納していない…

logout. lseek

カーネルは、ハードディスクとメモリの間でのデータ転送にかかる時間を節約するため、ディスクブロックのコピーをメモリ内で管理している(カーネルバッファ)。カーネルはディスクからカーネルバッファにブロックをコピーする。プロセスが特定のファイルの…

バッファリング

システムコールに時間がかかる理由 バッファサイズによって読み書きのシステムコールの回数が変わる。システムコールには時間がかかるため、回数の多いプログラムは実行時間が遅くなり他のユーザーが使いたい時間を占有してしまう。 システムコールに時間が…

cp

whoでファイル読み込みを学んだが、ファイル書き込みするにはどうするか?それを学ぶためにcpコマンドを作成する。 ファイルを作成したり、書き換えたりするための手段はcreatシステムコールを使う。 int fd = creat(char *filename, mode_t mode); createシ…

who

次のプログラムはwhoコマンド。whoはログインセッションを表示する。 whoはutmpファイル(OS Xの場合はutmpx)を呼んでいる。 utmpファイルはutmpエントリの連続になっている。utmp.hにutmpエントリは定義されている。ファイルから構造体を読み出すにはどうす…

more

UNIXの勉強の続き。この本を勉強するUnix/Linuxプログラミング理論と実践作者: Bruce Molay,長尾高弘出版社/メーカー: アスキー・メディアワークス発売日: 2008/04/21メディア: 大型本購入: 9人 クリック: 280回この商品を含むブログ (47件) を見る一章はOS…

Webサーバ2

Webサーバのコーディングプランは以下のようになる サーバをセットアップする 前回作成したsocklib.cのmake_server_socketを使う 呼び出しを受け付ける acceptを呼び出しクライアントのファイルディスクリプタを取得し、fdopenを使いファイルディクリプタを…

Webサーバ

UNIXプラットフォームのC言語の勉強を始めようと思う。 この本を教科書にします。Unix/Linuxプログラミング理論と実践作者: Bruce Molay,長尾高弘出版社/メーカー: アスキー・メディアワークス発売日: 2008/04/21メディア: 大型本購入: 9人 クリック: 280回…