Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在 while 循环中有一个 nanosleep 函数。这是我在“Linux 系统编程:直接与内核和 C 库对话”一书中找到的一个示例
while(nanosleep(a, b) && errno==EINTR){ struct timespec *tmp =a; a=b; b=tmp; }
工作完美,但我不确定如何检查 EINTR 以外的其他错误,以便我可以在屏幕上打印错误并退出程序。有任何想法吗?
您可以简单地将返回值存储在循环条件中:
int ret; while((ret = nanosleep(a, b)) && errno==EINTR){ struct timespec *tmp =a; a=b; b=tmp; } if (ret) { perror("nanosleep"); exit(1); }