usleepのドキュメントには、呼び出しは無効であると記載されusleep(0)
ています。ただし、以下の C++ コードの小さなスニペットを実行している私のシステム (RHEL 5.2) では、実際には と同じ効果があるように見えることがわかりましたusleep(1)
。これは予想されることですか? もしそうなら、ドキュメントと実際に目にするものとの間に矛盾があるのはなぜですか?
展示物A
コード:
#include <unistd.h>
int main()
{
for( int i = 0; i < 10000; i++ )
{
usleep(1);
}
}
出力:
$ time ./test
real 0m10.124s
user 0m0.001s
sys 0m0.000s
展示B
コード:
#include <unistd.h>
int main()
{
for( int i = 0; i < 10000; i++ )
{
usleep(1);
usleep(0);
}
}
出力:
$ time ./test
real 0m20.770s
user 0m0.002s
sys 0m0.001s