当前位置:  技术问答>linux和unix

如何获得脚本执行的结果

    来源: 互联网  发布时间:2016-06-02

    本文导语:  Linux下,我在C语言中用system函数启动了某个执行程序,该程序执行后会在shell窗口输出执行结果 我要如何才能获得这个执行的结果呢 向各位求教 | 方法很多你可以使用有名管道或者文件,但...

Linux下,我在C语言中用system函数启动了某个执行程序,该程序执行后会在shell窗口输出执行结果
我要如何才能获得这个执行的结果呢

向各位求教

|
方法很多你可以使用有名管道或者文件,但我觉得最简单的还是重置标准输出到一个pipe如:

pid_t pid;
int mypipe[2];

if (pipe (mypipe))
{
    fprintf (stderr, "Pipe failed.n");
    return EXIT_FAILURE;
}

if(0 == (pid = fork())){
    close(1); //关闭标准输出先
    close(pipe[0]); //关闭pipe的读端
    dup(pipe[1]);   //这样它会将标准输出(1)重定向到pipe[1];
    system("你的命令");
}
else{
    close(pipe[1]); //关闭写端
    read(pipe[0],buf,buf_size); //这样就读到了。
}

|
我是没什么好办法,我都是用输出重定向把结果写到一个文件里,然后解析这个文件

|


重定向到标准输出也可以。

或者自己用 fork+execl。

    
 
 

您可能感兴趣的文章:

  • 求助:请问怎么获得在个一个脚本中执行的另外个脚本的返回结果,如执行成功或失败
  • 谁能教俺如何写一个获得目录内所有文件名称的脚本
  • shell脚本中怎样获得指定的两个日期相差的天数
  • Oracle 获得以百分号结尾的脚本有三种写法
  • 请问在shell脚本里怎样获得文件的大小?
  • 请问如何在C语言中嵌入的shell脚本中获得C语言程序中定义的某个变量
  • shell脚本里,如何获得当前时间的前1天或者前1个月的时间?
  • JSP 如何获得由 JS脚本传过来的参数? 代码如下:各位大虾给看看!!谢了!!
  • 怎样获得shell程序执行的路径
  • 如何用JAVA获得当前执行文件所在的目录路径,和系统目录路径(c:winnt)
  • 如何获得子进程的执行时间
  • 怎样不执行SELECT SQL语句即可获得ResultSetMetaData实例????
  • redhat9普通用户执行一个bshell,bshell怎么能获得root权限呢
  • 如何获得指定进程名执行个数
  • linux c 获得当前进程的进程名和执行路径(示例)
  • 在linux下如何获得当前可执行文件的路径
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 用sysconf(_SC_CLK_TCK)可以获得时钟的hz,还有什么方法可以获得内核时钟的hz
  • gtk的获得属性的问题!急!
  • 调用DOM对象的focus使文本框获得焦点
  • 获得客户端的显示分辨率
  • 怎样一个一个的获得指定目录下的文件名.
  • linux下什么语言获得参数是~1
  • 求救:关于在BSD下如何通过文件路径使用核内函数获得文件句柄?
  • jQuery获得内容和属性示例代码
  • jQuery获得内容与属性方法
  • mysql获得60天前unix时间思路及代码
  • 用javamail怎么获得邮件内容?
  • 如何获得上一组件的的位置信息?
  • 请问怎样获得当前所在目录和清屏?
  • 在JavaBean或Servlet如何获得URL地址?
  • 如何获得系统支持字体?
  • 按钮如何获得焦点并按回车触发?
  • 如何在UNIX下获得MAC地址?
  • 如何获得刚插入数据的id递增值
  • 如何获得iptables的输出信息??????有挑战性阿!!!
  • 我的redhat 可以自动获得Ip地址 却无法浏览网页 !


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3