Sign-up....

UNIX下的C语言编程.(怎样调用一个程序并得到这个程序的返回值?)

UNIX下的C语言编程.(怎样调用一个程序并得到这个程序的返回值?)

使用

system("test1");

system("echo $?");

也不能把程序的返回值返回到程序变量中.

那么这种情况应如何处理呢?

[110 byte] By [msdn] at [2007-8-14 16:28:36]
# 1 Re: UNIX下的C语言编程.(怎样调用一个程序并得到这个程序的返回值?)

try: fork() + exec*() + wait()/waitpid()

aria at 2004-02-24 18:47:06Z >
# 2 Re: UNIX下的C语言编程.(怎样调用一个程序并得到这个程序的返回值?)

那我怎么在服务上开权限可以创建进程.

myblue100 at 2004-02-24 19:05:39Z >
# 3 Re: UNIX下的C语言编程.(怎样调用一个程序并得到这个程序的返回值?)

这样做能取得程序myCommand的返回值吗?是不是只是得到system调用的返回值.也就是system的返回什.如果myCommand字符串里的程序返回的值是flase或是101,那么怎么得到这个值呢?

myblue100 at 2004-02-25 09:03:45Z >
# 4 Re: UNIX下的C语言编程.(怎样调用一个程序并得到这个程序的返回值?)

system调用的返回值是经过编码的,它的低8位保存了子进程的状态信息,高位保存的才是子进程的返回值,所以才需要右移8位返回, 可以用<sys/wait.h>定义的宏来编程

stat = system(myCommand);

WEXITSTATUS(stat)'

子进程返回的退出码

stat = system(myCommand);

glzsb at 2004-02-25 22:01:42Z >
# 5 Re: UNIX下的C语言编程.(怎样调用一个程序并得到这个程序的返回值?)

你说的很对.我想往北飞.真是太感谢你了,my darling...我试过了.就是您说的那样.

myblue100 at 2004-02-26 09:06:19Z >

Linux/Unix社区

All Classified