如何判断下一次对fgets(stdin, ...)的调用是否会阻塞?换句话说,我如何判断stdin缓冲区是否有一个等待读取的换行符?
在Unix上,我知道我可以这样使用select():
fd_set reads;
FD_ZERO(&reads);
FD_SET(fileno(stdin), &reads);
int s = select(fileno(stdin)+1, &reads, 0, 0, 0);
if (s) {
//fgets is ready
}
然而,Windows上的select()只适
我在Visual studio C++中做了一些多线程编程,使用了beginthreadex,endthreadex调用。
我创建了一个子线程thread1。子线程运行在一个永远不会退出的函数上,因为它有一个无限循环。现在,如果父线程因错误而终止或成功完成,子线程是否也会退出?我的疑问是--是否存在子线程即使在主程序退出后仍处于活动状态的情况?
对于linux,这种情况应该是怎样的呢?