我有一个父进程需要将命令行args发送给它的子进程吗?我怎么能这样做?我的意思是从parent.cpp到child .cpp? 感谢
答案 0 :(得分:2)
使用 execvp(const char *file, char *const argv[])
运行带有参数的程序来代替当前程序。您作为参考传递的argv[]
遵循与传入argv[]
的{{1}}参数相同的逻辑。
如果您希望保持当前流程的运行并在不同的流程中启动新程序,那么您首先需要 fork()
。粗略的想法是这样的:
main()
最简单的Windows替代方法是使用ms特定的 _spawnvp()
或类似功能。它使用与exec版本相同的参数,并且第一个参数告诉您是否要:
答案 1 :(得分:0)
如果使用fork(),那么子进程将继承父进程。
http://man7.org/linux/man-pages/man2/fork.2.html
如果您只想在内存中的对象实例之间传递变量,那么您可以创建int argc
和char * argv[]
的变量来传递。
答案 2 :(得分:0)
在父母身上。使用
system("child_application my arg list");
在孩子身上。使用
int main(int argc, char *argv[])
为了便于解析args,请尝试使用boost program_options库。
在unix系统中可以使用fork
。子进程获取所有父内存。