你指的是命令行参数?
修改Program.cs里的Main方法,设置参数为string[],就可以获取运行时的命令行参数。
a程序通过命令行方式吧参数传给b程序即可。
static void Main(string[] args){
foreach (string arg in args)
{
Console.WriteLine(arg)
}
}
你问的问题好大,要合并两份独立的c语言代码,第一,要把两份代码里的main入口合并为一个,
如何合并要看你期望合并后的main函数实现什么样的功能,
例如,A程序是实现计算一个数组里的所有数相加后的和的值的功能;
B程序是实现输出任意数字到一个txt文件的功能。那么合并A和B程序后,
一般就是将B程序里的main函数里的实现内容追加到A程序里的main函数的实现内容之后,
就算是合并后的main函数的内容了。
希望你具体问题具体分析。
第二,合并过程中要确认两份代码有没有标识符命名上的重复的问题。
例如两份代码里的公开函数名有没有相同的,如果相同的话肯定要改成不同的。
第三,在确认了前两点后,接着确认编译链接不出错。
第四,链接成功后,确认运行动作是否符合期望。
当然,实际项目中合并两份代码,往往不是上面这样做了就可以了。还涉及到两个程序中的功能的合并之类的比较复杂的工作。实践出真知,希望你多做项目来收获心得。
fork 出子进程,在子进程里用 exec 执行A,在父进程里做B要做的事情,比如下面的代码例子里,父进程在一个循环体内等待需要执行的 *** 作, 通过 scanf 来接收用户命令,用户输入 0,则启动 A, 输入 1 则杀掉 A。
#include <stdio.h>#include <signal.h>
#include <unistd.h>
int main()
{
int pid = -1
int op
while(1) {
printf("Input op code\n")
scanf("%d", &op)
switch (op)
{
case 0:
/* fork child */
while((pid = fork()) < 0) {}
if (pid == 0)
{
/* child */
execlp("/path/to/A", "/path/to/A", ...., NULL)
exit(1)
}
break
case 1:
/* kill child */
if (pid < 0) {
printf("Start A first!\n")
break
}
kill(pid, SIGKILL)
pid = -1
break
default:
printf("Unknown op %d\n", op)
break
}
}
return 0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)