直接调用不行,但2个程序可以设定调用规则来实现这个要求,其实就是A程序怎么通知B程序,要调用B程序的函数,同时把调用结果返回给A
通常情况下可以使用消息,就是A程序发个消息给B程序,然后B收到后执行函数,并将结果通知A,
也可以通过Socket通讯完成上述功能
你要知道system的返回值,并非H1EXE的返回值。
在DOS下,
system()只是做一个调用其他程序的工作,只要调用成功就返回0,不成功就返回-1。
它不能得到被调用的程序的执行结果。
要得到其他程序的执行的结果,要用spawn()这个家族的函数。
如果在linux下面
如果你想得到那个返回值可以调用WEXITSTATUS(status),其中status是system函数的返回值。
如果你非常想获取他的返回值,就使用popen函数。它返回一个FILE,就好像读写文件一样 *** 作它就是了,不需要另外写文件读文件。
例:
#include<stdioh>
intsushu(intx)
{inti;
for(i=2;i<x;i++)
if(x%i==0)break;
if(i==x)return1;
elsereturn0;
}
main()
{inti,n=0;
for(i=2;i<=1000;i++)
if(sushu(i)==1)n++:
printf("n=%d",n);
}
扩展资料
使用vfork()新建子进程,然后调用exec函数族
#include<unistdh>
main()
{
charargv[]={“ls”,”-al”,”/etc/passwd”,(char)};
if(vfork()==0)
{
execv(“/bin/ls”,argv);
}else{
printf(“Thisistheparentprocess\n”);
}
}
1 在调用之前,先声明和定义函数
2 根据你函数的参数类表来,填入函数调用时所真正用到的参数来进行调用
例如:要在函数 F(){ } 中调用新增的小程序int FA(int a)和 char FC(char c),按照上面讲的:
1声明和定义
int
FA(int a){ /函数功能具体的定义/};
char
FC(char& c){ /函数功能具体的定义/};
2 根据函数的声明,在F()中加以调用
void
F()
{
int getA = FA(6); //6为int,如果参数是6001,则会强制转换成为6
char getC= FC('a') //a为单个的字符
}
就这样,简单吧,去试试吧 :-)
以上就是关于如何在这个程序内调用另一个程序的函数全部的内容,包括:如何在这个程序内调用另一个程序的函数、C语言 如何调用另一个程序的计算结果急!!!!!、C语言中如何调用子程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)