当前位置: 技术问答>linux和unix
非搁置模式O_NONBLOCK的作用是什么
来源: 互联网 发布时间:2017-05-02
本文导语: 小弟在学习linux编程,知道open()里面有个非搁置模式O_NONBLOCK的参数模式,但是不知道它的作用是什么,能不能举个具体点的例子告诉我??????? | 以前写的,程序开始后自动计时,十秒后退出...
小弟在学习linux编程,知道open()里面有个非搁置模式O_NONBLOCK的参数模式,但是不知道它的作用是什么,能不能举个具体点的例子告诉我???????
|
以前写的,程序开始后自动计时,十秒后退出。如果输入stop,则立即退出。
#include
#include
#include
#include
#include
#include
#include
#include
static int thread_exit = 0; /* running state of a thread */
void *showtime(void *arg)
{ /* this is a long-time test */
int *i = arg;
time_t p;
thread_exit = 0;
while (--(*i) > 0) {
printf("---%d---n", *i);
time(&p);
printf("%s", ctime(&p));
sleep(1);
}
thread_exit = 1;
return ((void *)0);
}
int main(int argc, char **argv)
{
pthread_t tid;
pthread_attr_t attr;
void *tret;
char cmd[16] = { 0 };
int err, times = 10; /* default: test costs 10 secs */
int flag;
/* Use pthread */
pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
err = pthread_create(&tid, NULL, showtime, ×); /* showtime is a long-time test */
if (err != 0) {
perror("Can't create thread.n");
exit(1);
}
/* pthread_join(tid,&tret); *//* wait thread to terminate, pthread_join will block the main thread, so we give it up */
flag = fcntl(0, F_GETFL, 0);
flag |= O_NONBLOCK;
if (fcntl(0, F_SETFL, flag)
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
©2012-2021,