c++程序中调用c生成的文件

wswhp 2008-10-07 05:36:30
我有个c++程序,确切的说是qt程序。 它完成界面的设计和参数的输入。
在验证参数后需要调用一个完成编译的c程序并且要传参数给这个c程序,c++ 程序要
等待c程序允许结束后再继续。
由于这个c程序是一个alsa的应用,编译时一定要加-lasound,
(gcc capture.c -o capture -lasound)
所以我认为c++不能直接调用这个c程序,而是只能调用它编译后的可执行文件。
我在c++中使用 system("./capture");但是没有效果,请问大虾们。
应该怎么调用,因为capture是命令行的调用 我不知道怎么在c++中写。
我的环境是linux opensuse.另外C++应该如何等待这个c程序执行完?sleep()函数?


求助。。。。。。。。。。。
分不够再加
...全文
158 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wswhp 2008-10-16
  • 打赏
  • 举报
回复
自己顶
wswhp 2008-10-07
  • 打赏
  • 举报
回复
自己顶一下
aaajj 2008-10-07
  • 打赏
  • 举报
回复
记号
MagiSu 2008-10-07
  • 打赏
  • 举报
回复
system不是并行执行的,是执行完之后再返回原始程序的位置的。


而且C++可以和C共同编译的,没有任何问题。实在不行把C程序编译成so文件
chenfeng2002 2008-10-07
  • 打赏
  • 举报
回复
ls的不对吧
system启动某个程序后是和原来的并行执行的
它们的调度由系统完成


不过还是不能满足lz所说的要求,可参考2楼的办法
zhucz333 2008-10-07
  • 打赏
  • 举报
回复
你在原来的进程中调用system()当然是不行的,system()启动的进程将覆盖掉原来的进程,也就是你的主进程就没有了,因此最好的办法就是fork()一下,然后主进程wait(),这也是2楼的办法
太乙 2008-10-07
  • 打赏
  • 举报
回复
fork一个子进程,在子进程中execl执行那个c程序,然后在父进程中等待子进程退出!
rollrock1987 2008-10-07
  • 打赏
  • 举报
回复
所以我认为c++不能直接调用这个c程序,而是只能调用它编译后的可执行文件。
错误
wswhp 2008-10-07
  • 打赏
  • 举报
回复
就是c++ 调用alsa程序 传参数给他


把C程序编译成so文件可行吗
Walker-cheng 2008-10-07
  • 打赏
  • 举报
回复
指定编译器就可以了
帅得不敢出门 2008-10-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hqin6 的回复:]
fork一个子进程,在子进程中execl执行那个c程序,然后在父进程中等待子进程退出!
[/Quote]
up
system()这个是达不到要求的, 无法满足 c++ 程序要等待c程序允许结束后再继续 这个条件
once_and_again 2008-10-07
  • 打赏
  • 举报
回复
alsa 声音驱动的,
得到c可执行程序的结果而已?还是 c++和c共同操作什么?
wswhp 2008-10-07
  • 打赏
  • 举报
回复
还有什么好方法吗 困惑啊

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧