发布网友 发布时间:2023-10-25 19:02
共1个回答
热心网友 时间:2024-12-04 09:14
linux中管道是指什么,重定向是指什么?
管道是把一个命令的输出作为下一个命令的输入,
如ls/etc|more
cat/etc/passwd|greproot
重定向是把一个命令的输出重定向到另一个文件
如echo'hello'>abc.txt一个大于号是抹除源文件内容并写入,如果没有这个文件就创建这个文件并写入
echo'helloworld'>>/var/log/messages两个大于号是追加内容到这个文件,没有这个文件就创建并写入
cat/etc/sysconfig/network-scripts/ifc-eth0>>abcd.txt
break2>/dev/null
linux中如何保存find查找出来的内容到一个文档?
find./-namexxx>filename把标准输出重定向到filename中find./-namexxx>>filename把标准输出追加到filename中
LINUX题,“请叙述重定向符号>和>>的异同”?
同:它们的作用都是改变各种提示信息的输出方向,把提示信息输出到指定的地方去——各种提示信息默认是输出到屏幕上去的.异:它们的作用稍有差别。
单个的>表示以覆盖方式重定向提示信息,也就是说如果目的地原来有内容,将把原来的内容清除掉,用新内容填充;>>表示以追加的方式重定向提示信息,也就是说,如果目的地原来有内容,原有的内容将保持不变,在原有内容之后追加新内容。例如:假设d:/test.txt中的内容是:ILovebatch。那么,在cmd窗口中,分别使用如下两条语句:echome,too>d:/test.txt和echome,too>>d:/test.txt,将会发现,使用第一条语句之后,test.txt中只有一行内容:me,too,而使用第二条语句之后,test.txt中将有两行内容,分别是ILovebatch和me,too。linuxC程序中如何获取shell的脚本输出呢?
你说的是LinuxC程序获取shell脚本(命令)输出吧,这里简单介绍3种方式,分别是临时文件、匿名管道和popen函数,感兴趣的朋友可以尝试一下:
临时文件
这种方式最容易实现,基本思想是调用C语言标准库的system函数,运行shell命令或脚本,将输出结果重定向到一个临时文件中,然后读取临时文件,获取shell执行结果,测试代码如下,非常简单,输入参数分别为shell命令(脚本)和临时文件名,最终结果保存在临时文件中:
匿名管道
这种方式主要是管道,先pipe创建一个匿名管道,然后fork创建一个子进程,子进程运行shell命令或脚本,并将标准输出p到匿名管道的写端,父进程再从匿名管道读端读取数据即可,测试代码如下,非常简单,子进程对应写端,父进程对应读端:
popen函数
这种方式最简单,C标准库专门提供了一个popen函数,可以非常简单的处理调用shell,基本思想创建一个管道,fork一个进程,然后执行shell,而shell的输出可以采用读取文件的方式获得,这种方式既避免了创建临时文件,又不受输出字符数的*,推荐使用:
目前,就分享这3种LinuxC程序获取shell脚本(命令)输出的方式吧,对于日常开发应用来说,完全够用了,只要你有一定的C语言基础,熟悉一下上面的代码,很快就能掌握的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。