C++ 创建文件描述符的方法有哪些?
的Wikipedia页面列出了以下系统调用:C++ 创建文件描述符的方法有哪些?,c++,linux,epoll,qnx,C++,Linux,Epoll,Qnx,的Wikipedia页面列出了以下系统调用: - open(), open64() - creat(), creat64() - socket() - accept() - socketpair() - epoll_create() (Linux only) - pipe() - signalfd() (Linux only) - eventfd() (Linux only) 在其他平台上,特别是在QNX上,是否还有其他方法 我有一个线程,它通过poll()调用监视一组套接字
- open(), open64()
- creat(), creat64()
- socket()
- accept()
- socketpair()
- epoll_create() (Linux only)
- pipe()
- signalfd() (Linux only)
- eventfd() (Linux only)
在其他平台上,特别是在QNX
上,是否还有其他方法
我有一个线程,它通过poll()
调用监视一组套接字,并从套接字接收“命令”。现在,我需要添加一种可能性,从同一进程中运行的其他线程发送这样的“命令”。如果可能的话,我希望避免在同一过程中写入管道/套接字的开销
有人能想到使用
poll()
以某种方式监视条件变量吗?是否必须通过文件描述符发送“命令”?为什么不简单地建立一个消息队列,当轮询
调用超时时,您检查这个队列?如果你要在接收命令的过程中“发送”这些命令,为什么还要麻烦发送呢?Linux也有timerfd\u create
来创建一个文件描述符……而且我相信管道到self真的很快。