管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入,常说的管道多是指无名管道,无名管道只能用于具有亲缘关系的进程之间,这是它与有名管道的最大区别。有名管道叫named pipe或者FIFO(先进先出),可以用函数mkfifo()创建。在Linux中,管道是一种使用非常频繁的通信机制。从本质上说,管道也是一种文件,但它又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题,具体表现为:
1、限制管道的大小。实际上,管道是一个固定大小的缓冲区。在Linux中,该缓冲区的大小为1页,即4K字节,使得它的大小不象文件那样不加检验地增长。使用单个固定缓冲区也会带来问题,比如在写管道时可能变满,当这种情况发生时,随后对管道的write()调用将默认地被阻塞,等待某些数据被读取,以便腾出足够的空间供write()调用写。
2、读取进程也可能工作得比写进程快。当所有当前进程数据已被读取时,管道变空。当这种情况发生时,一个随后的read()调用将默认地被阻塞,等待某些数据被写入,这解决了read()调用返回文件结束的问题。
注意:从管道读数据是一次性 *** 作,数据一旦被读,它就从管道中被抛弃,释放空间以便写更多的数据。
在黑屏时。按Ctrl+Alt+F2进入另一个shell,运行yast,选择hardware-Graphics and Monitor,里面有两个选项,第一个是text模式,第二个是图形模式,还有change和reprobe选项,但change选项是用不了的(如果你能用就最好不过了。直接更改属性,把分辨率调低点,accept,退出重启就行了),这时候先切换成为text模式,退出重启;重启后应该还是用不了的,再次按Ctrl+Alt+F2进入控制台,运行yast,此时再在上述的选项处进行change就OK了欢迎分享,转载请注明来源:内存溢出
评论列表(0条)