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

编程中管道是什么意思

发布时间: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后的内容,对文件计数,

阅读全文

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

热点内容
耐克阿迪什么网站 浏览:967
led一般用的什么app 浏览:271
8岁小孩如何学会编程 浏览:604
文件袋大小的电脑是多少寸 浏览:153
swag网站怎么没有了 浏览:143
下载的文件解压密码是多少 浏览:294
磁盘文件系统空白 浏览:737
ae气功特效教程 浏览:727
纸飞机网站是什么 浏览:742
文件系统错误65535 浏览:644
迅雷没下载完的文件怎么打开 浏览:878
delphijson例子 浏览:180
js放在jsp中不生效 浏览:674
微信爆粉推广员 浏览:372
雷霆战机升级合成 浏览:35
加密u盘文件解密 浏览:84
如何自己开发自己的一个网站 浏览:888
微信读书离线文件转化 浏览:125
无线传感网网络层 浏览:749
央视专区app 浏览:976

友情链接