导航:首页 > 编程知识 > 编程中管道是什么意思

编程中管道是什么意思

发布时间:2023-09-09 23:12:38

linux中管道是指什么,重定向是指什么

管道是把一个命令的输出作为下一个命令的输入,
如 ls /etc | more
cat /etc/passwd | grep root
重定向是把一个命令的输出重定向到另一个文件
如 echo 'hello' > abc.txt 一个大于号是抹除源文件内容并写入,如果没有这个文件就创建这个文件并写入
echo 'hello world' >> /var/log/messages 两个大于号是追加内容到这个文件,没有这个文件就创建并写入
cat /etc/sysconfig/network-scripts/ifc-eth0 >>abcd.txt

break 2>/dev/null

② 关于linux编程中fork和pipe的问题

fork()不仅创建出与父进程代码相同的子进程,而且父进程在fork执行点的所有上下文场景也被自动复制到子进程中,包括:
—全局和局部变量
—打开的文件句柄
—共享内存、消息等同步对象
由于pipe调用相当于创建了2个文件句柄,因此在fork后这两个句柄也被自动复制到子进程中,对这两个句柄的操作效果与在主进程中的操作效果是一致的,这就使父子进程之间很容易通过该机制实现数据交换,如:
假设pipe产生的句柄为P[0],P[1],在fork后父子进程都拥有了P[0],P[1]句柄,那么:
—父进程可向自己的P[1]中写入数据,子进程从P[0]中即可读出该数据;切记此时父进程不能也从P[0]读数据,否则自己写入的数据可能先被自己读走了
—反之亦然,子进程向P[1]中写入数据后,父进程从P[0]中可读出该数据;切记此时子进程不要从P[0]读走数据
你可能难以理解为什么进程内部的数据读写会被传递到另一个进程,但别忘了,pipe匿名管道和文件,socket等一样是属于操作系统的管理对象,对其进行读写都是由OS的内核代码来进行控制的。在父进程调用pipe创建出管道后,该管道对象是存储在OS内部的,父进程得到的P[0]和P[1]都只是对该对象的引用(相当于指针);在fork出子进程后,子进程复制出的也只是同一个指针,所指向的还是OS中的同一个对象,这就是为什么父子进程能通过其进行互相通信的原因。

③ linux下C语言编程,管道,p,fork,疑问的是,为什么连用那么多close必须要close 代码如下

文件描述符0,1,2分别表示标准输入标准输出,标准错误输出, 所以在子进程里close(1)是关闭了标准输出, 然后用p(fda[1]);此时未用的最小文件描述符就是1(被关闭);这里关闭fda[0]就是为了说明在子进程是管道的写端(fda[0],不关闭是可以的为了保险起见关闭).然后子进程退出会调用系统程序ls,于是当前的文件目录就被发送到管道中.父进程同理, 就是将标准输出作为管道的读端,它读到的是子进程ls后的内容,对文件计数,

阅读全文

与编程中管道是什么意思相关的资料

热点内容
魅族手机备份文件夹 浏览:204
电脑c盘腾讯文件夹有什么用 浏览:467
编程语言哪个最好就业 浏览:912
能不能找到cad之前打开的文件 浏览:259
怎样设置文件夹权限 浏览:60
oppo手机如何把图片压缩成文件 浏览:808
加载语言文件失败 浏览:884
招聘plc编程属于什么职位类别 浏览:580
appstore改区后购买记录 浏览:538
win10管理该文件没有与之关联的程序 浏览:799
手机里qt是什么文件夹 浏览:48
笔记本关闭开机密码 浏览:672
无法定位程序输入点inetntop 浏览:22
java修改文件编码 浏览:12
js判断火狐 浏览:229
微信开发支持https接口 浏览:779
为什么文件上传到一半卡住不动了 浏览:375
苹果平板怎么查看app消费记录 浏览:98
保养车用什么app 浏览:762
哪个网站看书好看 浏览:954

友情链接