c#里a程序发参数给b程序,b程序根据参数执行对应的x程序,具体应该怎么

c#里a程序发参数给b程序,b程序根据参数执行对应的x程序,具体应该怎么,第1张

你指的是命令行参数

修改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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7694805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存