核心判题程序
进程之间通信方法
stdout和stderr之间的区别
Linux进程间通信(四):命名管道 mkfifo()、open()、read()、close()
在open函数的调用的第二个参数中,你看到一个陌生的选项 O_NONBLOCK,选项 O_NONBLOCK 表示非阻塞,加上这个选项后,表示open调用是非阻塞的,如果没有这个选项,则表示open调用是阻塞的。
简记:
只读阻塞,读的时候若没有进程在写,那么等待;
只写阻塞,写的时候若没有进程在读,那么等待;
只读非阻塞,读的时候若没有进程在写,那么直接返回;
只写非阻塞,写的时候若没有进程在读,那么直接返回;
open调用的阻塞 是什么一回事呢?很简单,对于以只读方式(O_RDONLY)打开的FIFO文件,如果open调用是阻塞的(即第二个参数为O_RDONLY),除非有一个进程以写方式打开同一个FIFO,否则它不会返回;如果open调用是非阻塞的的(即第二个参数为O_RDONLY | O_NONBLOCK),则即使没有其他进程以写方式打开同一个FIFO文件,open调用将成功并立即返回。
对于以只写方式(O_WRONLY)打开的FIFO文件,如果open调用是阻塞的(即第二个参数为O_WRONLY),open调用将被阻塞,直到有一个进程以只读方式打开同一个FIFO文件为止;如果open调用是非阻塞的(即第二个参数为O_WRONLY | O_NONBLOCK),open总会立即返回,但如果没有其他进程以只读方式打开同一个FIFO文件,open调用将返回-1,并且FIFO也不会被打开。
linux中fork()函数详解
C语言 unlink函数
dup2()
feof()原理和用法易错点
kill()
wait4函数
进程运行时间计算
OJ术语表: AC、WA、TLE、OLE、MLE、RE、PE、CE
进程终止信号
execvp使用