ファイルの読み書き
• プロセスは開いたファイルを
「ファイル記述子」という数字で管理
Oct. 7,2015 ロボットシステム学 30
pi@raspberrypi ~ $ cat main.c
#include <stdio.h>
int main(int argc, char const* argv[])
{
FILE *f = fopen("hoge","w");
sleep(100);
return 0;
}
pi@raspberrypi ~ $ gcc main.c
pi@raspberrypi ~ $ ./a.out
pi@raspberrypi ~ $ ps u | grep -F a.out
pi 8405 0.0 0.0 1688 300 pts/0 S+ 05:23 0:00 ./a.out
(略)
pi@raspberrypi ~ $ ls -l /proc/8405/fd
total 0
lrwx------ 1 pi pi 64 Oct 27 05:23 0 -> /dev/pts/0
lrwx------ 1 pi pi 64 Oct 27 05:23 1 -> /dev/pts/0
lrwx------ 1 pi pi 64 Oct 27 05:23 2 -> /dev/pts/0
l-wx------ 1 pi pi 64 Oct 27 05:23 3 -> /home/pi/hoge
ファイルを開いて放置するプログラムを
書いて実行
プロセス番号を調べて/proc/<番号>/fdを見ると
開いたファイルはファイル記述子3で管理されている
31.
ファイル記述子0,1,2
• なにこれ?
– ファイル/dev/pts/0につながっているようだ
•/dev/pts/0
– a.outを実行した画面でttyと打つと表示される
Oct. 7, 2015 ロボットシステム学 31
pi@raspberrypi ~ $ ls -l /proc/8405/fd
total 0
lrwx------ 1 pi pi 64 Oct 27 05:23 0 -> /dev/pts/0
lrwx------ 1 pi pi 64 Oct 27 05:23 1 -> /dev/pts/0
lrwx------ 1 pi pi 64 Oct 27 05:23 2 -> /dev/pts/0
l-wx------ 1 pi pi 64 Oct 27 05:23 3 -> /home/pi/hoge
pi@raspberrypi ~ $ tty
/dev/pts/0