ftruncate
stdout
の出力ストリームを切り捨てます。
void ftruncate()
ftruncate
関数は、stdout
の出力ストリームを切り捨てるデータ記録関数です。
例7-18 カウンタを使用してstdout出力ストリームを切り捨てるためにftruncateを使用する方法
tick-10ms
{
printf("%d\n", i++);
}
tick-10ms
/i == 10/
{
ftruncate();
}
tick-10ms
/i == 20/
{
exit(0);
}
sudo dtrace -o /tmp/result -s /path/to/scriptを使用してスクリプト例を実行する場合。標準出力は/tmp/result
に保存されます。このプログラムは、10ミリ秒ごとにトリガーされるカウンタを実装していて、終了する前に最大20までカウントするように設計されています。カウンタはカウントごとに標準出力に出力されますが、カウンタが10に達したときには、標準出力を切り捨てるためにftruncate
がコールされます。プログラムの終了時に、/tmp/result
の内容を確認すると、11番目のカウンタの前の標準出力が削除されていることがわかります。