- 主题:nonblocking open有没有啥思路?
换语言吧, 一定要用C吗?
【 在 deadlylight 的大作中提到: 】
: 一般的nonblocking都是先获得fd,然后对这个fd做nonblocking的read/write。
: 但是对于regular file来说,fd = open(path...)本身也是要读磁盘的,"open"自己就不是nonblocking。
: 有没有其他的系统调用可以取代open来做nonblocking?
: ...................
--
FROM 117.147.21.*
单独线程
【 在 deadlylight 的大作中提到: 】
:
: 一般的nonblocking都是先获得fd,然后对这个fd做nonblocking的read/write。
: 但是对于regular file来说,fd = open(path...)本身也是要读磁盘的,"open"自己就不是nonblocking。
: 有没有其他的系统调用可以取代open来做nonblocking?
: 从man page里看open + O_NONBLOCK是不行的。
#发自zSMTH@HMA-AL00
--
FROM 123.122.163.*
太重了吧。需要先在另一个线程 open,再把 fd 传回工作线程。
【 在 newre (民工六草) 的大作中提到: 】
: 单独线程
: #发自zSMTH@HMA-AL00
--
FROM 112.47.122.*
lseek也能non-blocking吗?
--
FROM 59.109.153.*
很正常的设计。一个低优先级线程负责打开,并设置为非阻塞,加入到epoll之类的机制里。另一个线程负责响应,必要时加几个worker线程。
【 在 hgoldfish @ [LinuxDev] 的大作中提到: 】
:
: 太重了吧。需要先在另一个线程 open,再把 fd 传回工作线程。
:
: 【 在 newre (民工六草) 的大作中提到: 】
: : 单独线程
#发自zSMTH@HMA-AL00
--
FROM 106.121.137.*
感觉seek操作应该不需要磁盘操作,没仔细研究过。
【 在 pfan117 的大作中提到: 】
: lseek也能non-blocking吗?
--
FROM 27.26.154.*
跟文件系统有关吧。有些文件系统支持空洞。
【 在 deadlylight (黑洞中的量子) 的大作中提到: 】
: 感觉seek操作应该不需要磁盘操作,没仔细研究过。
--
FROM 47.243.39.*