Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 关闭套接字并选择()_Unix_Sockets - Fatal编程技术网

Unix 关闭套接字并选择()

Unix 关闭套接字并选择(),unix,sockets,Unix,Sockets,所以我需要关闭一个特定的连接,但问题是另一个线程正在同时执行select(),它将套接字作为它正在监视的文件描述符之一 select()是否会正常终止,或者是否会发生任何不好的情况?我不是100%确定,但如果在select()启动后关闭套接字,则不会发生任何不好的情况选择()将返回一个错误,如果您将已关闭的套接字传递给它(请参阅) 另外,如果您使用select()等待数据读取,它可能会报告此已关闭的套接字已准备好读取(因为读取不会阻止已关闭的套接字) 您可以编写一个简单的程序,并实际检查系统上会

所以我需要关闭一个特定的连接,但问题是另一个线程正在同时执行select(),它将套接字作为它正在监视的文件描述符之一


select()是否会正常终止,或者是否会发生任何不好的情况?

我不是100%确定,但如果在
select()启动后关闭套接字,则不会发生任何不好的情况<代码>选择()
将返回一个错误,如果您将已关闭的套接字传递给它(请参阅)

另外,如果您使用
select()
等待数据读取,它可能会报告此已关闭的套接字已准备好读取(因为读取不会阻止已关闭的套接字)


您可以编写一个简单的程序,并实际检查系统上会发生什么情况。

我不是100%确定,但如果在启动
select()
后关闭套接字,则不会发生什么不好的情况<代码>选择()将返回一个错误,如果您将已关闭的套接字传递给它(请参阅)

另外,如果您使用
select()
等待数据读取,它可能会报告此已关闭的套接字已准备好读取(因为读取不会阻止已关闭的套接字)


您可以编写一个简单的程序,并实际检查您的系统将发生什么情况。

查看我对几乎相同问题的答案:


简短回答:让您的select call wait位于两个文件句柄上:套接字和管道的读取端。

查看我对几乎相同问题的答案:

简短回答:让您的select调用在两个文件句柄上等待:套接字和管道的读取端。

Dup。还有杜普。和