TVアニメ『Free!』PV
アニメ『Free!』(2013)
今年3期も放送予定されてる水泳アニメの1期です。
スポーツアニメはたくさんありますが、水泳は初めて見ました。
私が水泳が苦手なので、水泳でどこまで面白くできるのか不思議な感じです。
今回はファイルがロックされているかフリーなのか調べるコマンド、fuser(使用しているプロセスを特定するコマンド)を使います。
まず適当にプログラムを作ります。
takk@deb9:~/tmp$ echo 'int main(){while(1);}' >t.c takk@deb9:~/tmp$ cat t.c int main(){while(1);} takk@deb9:~/tmp$ gcc t.c takk@deb9:~/tmp$
無限ループするだけのプログラムです。
このプログラムをバックグラウンドで実行します。
takk@deb9:~/tmp$ ./a.out & [1] 4389 takk@deb9:~/tmp$ ps PID TTY TIME CMD 4202 pts/1 00:00:00 bash 4389 pts/1 00:00:01 a.out 4390 pts/1 00:00:00 ps takk@deb9:~/tmp$
プロセスID 4389が先ほど実行したプログラムです。
fuserでa.outを指定してプロセスIDを確認します。
takk@deb9:~/tmp$ fuser -v a.out USER PID ACCESS COMMAND /home/takk/tmp/a.out: takk 4389 ...e. a.out takk@deb9:~/tmp$
ACCESSを見るとeのフラグが表示されています。a.outが、実行中のファイルであることを表しています。
次は、ファイルをオープンしたままにするプログラムを作ります。
takk@deb9:~/tmp$ cat t.c #include <stdio.h> int main(){ FILE *fp; fp = fopen("b.txt","w"); while(1); } takk@deb9:~/tmp$ takk@deb9:~/tmp$ gcc -o b.out t.c
ビルドしてb.outを作成しました。実行するとb.txtという名前でファイルをオープンします。
実行します。
takk@deb9:~/tmp$ ./b.out & [2] 4448 takk@deb9:~/tmp$ ps PID TTY TIME CMD 4202 pts/1 00:00:00 bash 4389 pts/1 00:04:50 a.out 4448 pts/1 00:00:00 b.out 4449 pts/1 00:00:00 ps takk@deb9:~/tmp$
b.outはプロセスIDが4448です。
fuserでb.outが開いているb.txtを指定してみます。
takk@deb9:~/tmp$ fuser -v b.txt USER PID ACCESS COMMAND /home/takk/tmp/b.txt: takk 4448 F.... b.out takk@deb9:~/tmp$
ACCESSに、Fが表示されました。b.txtは、b.outによってアクセスされているファイルであることを表しています。
誰からも使われていないt.cも確認してみます。
takk@deb9:~/tmp$ fuser -v t.c takk@deb9:~/tmp$
何も表示されません。ということで、このファイルはフリーです。
コメント