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番目のカウンタの前の標準出力が削除されていることがわかります。