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

如何在C程序中调用shell脚本程序,并等待其执行完毕

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

    本文导语:  如题,请问如何在C程序中调用shell脚本程序,并等待shell脚本程序执行完毕,C程序才继续往下执行,谢谢! | pid_t pid = fork(); if (pid == 0) { // child process   execv(...); // call the shell scrip...

如题,请问如何在C程序中调用shell脚本程序,并等待shell脚本程序执行完毕,C程序才继续往下执行,谢谢!

|
pid_t pid = fork();

if (pid == 0) { // child process
  execv(...); // call the shell script
} else { // parent process
  waitpid(pid, ...); // wait the child process to exit
}

|
system
popen,pclose
都可用

|
popen和pclose是不是也是用类似exec的方法使用?
============================================
没错,pclose是这么做的,使用waitpid等待直到子进程结束后返回,popen和pclose方法最简单了,而且还可以把子进程的输出结果打印出来,如:
iRet = popen("ls a.txt");
可以直接从iRet文件描述符中读就可以了,不过要先判断iRet != NULL
,

|
system

|

execlp()
可以

|
system 应该可以的,如果是立即返回就是你自己的shell程序的问题。这个应该是顺序执行的。

|
如果立即返回那应该是你的脚本立即就返回了,
这要看你的脚本如何写的了

|
popen吧, 好用.

    
 
 

您可能感兴趣的文章:

  • 在Python中使用SWIG调用C和C++程序
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 我自己写了一个一个程序,文件名叫test。。怎么能够像调用系统命令那样子去调用我这个命令呢。在任何地方输入test就能执行这个程序。
  • SHELL 编程时要求用分模块编写各应用程序,然后由主菜单程序调用各子程序模块。主菜单如何调用子程序的呢?
  • unix程序中调用其他程序的问题
  • linux 里怎么在程序里调用其他程序?
  • 程序调用脚本,脚本启动另一个程序,如何让原始程序彻底释放资源?
  • C程序中调用Shell程序
  • 如何让java调用外部程序,并且不等待外部程序执行完毕,直接返回?
  • 急!请问有分析java程序性能瓶颈的工具吗?例如,统计 java 程序中函数调用次数?
  • Linux 编程:在程序中调用另外的程序,让它在后台工作。
  • [100分]如何在GTK下编写的程序中调用shell下的批处理程序[高手进]
  • 如何通过java程序调用vb程序
  • AIX 5.3下调用windows 2000上的exe程序,且AIX下需要得到windows下程序执行的返回结果
  • 内核空间能否调用用户空间程序?
  • 应用程序如何调用sd卡
  • 如何查看子进程调用其它程序后的程序段与数据段地址
  • go和python调用其它程序并得到程序输出
  • 请教一下在驱动里怎么调用应用程序
  • 请教高手,如何在java中调用其他应用程序(该程序主要进行数据库操作)
  • 怎么在应用程序中调用一个脚本??
  • 请问 如何用user用户启动一个程序(或者脚本) 在这个程序(或脚本)里将用户转为root 然后用root执行下面的代码
  • 请问在脚本里怎么得到一个程序运行的返回值,脚本怎么返回值?
  • 求教:编写一个bash脚本程序执行一个./file 程序
  • trap '' INT..为什么ctrl+c,不会终止脚本程序呢。这是Linux程序设计里面的例子。
  • 求助:脚本文件和主程序通信问题
  • 请教shell脚本启动程序
  • 如何在Linux下使用脚本实现程序的自动重启!望各位详解!
  • linux重新启动后自动运行脚本程序
  • bash脚本程序如何得到自身的执行路径?
  • 脚本程序如何接受命令行参数?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • 程序员的八种级别,你属于哪一级?
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • 在docker容器中通过apt-get安装新的程序
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?
  • linux下通过crond实现自动执行程序
  • 在java控制台程序中,可以用System.exit(0);使用一个程序终止,那么在servlet中如何使一个servlet程序终止呢?
  • http协议介绍,文件上传分析及程序举例
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • 程序员赚钱致富的6种方法
  • linux下,一个程序如何向另一个程序发送消息,另一个程序如何接收
  • HASH查找的程序实现及性能分析
  • jsp程序运行一次后,再修改原jsp程序,为什么运行还是的还是原来的程序??
  • 程序员为了健康必看!早晨空腹喝水,是对还是错?
  • 请教!Linux系统C开发的程序,为什么我的程序运行时内存持续增长,程序退出后内存也没有降低?


  • 站内导航:


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

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

    浙ICP备11055608号-3