posix_spawn一个shell脚本,麻烦传递参数

时间:2012-02-10 17:13:15

标签: c++ shell posix

我需要一个能够使用posix_spawn()提供的一些过程控制工具,比如suspend / resume / kill等,这是system()没有给我的东西。 因此,使用以下对posix_spawn()的调用来从c ++程序启动shell脚本:

 int result = posix_spawn(&spawnedPid, processExecutable, 0, 0, argumentList, 0);

其中processExecutable是“foo.sh”,argumentList是{“bar”,0,0,0};除了参数列表部分之外,进程foo.sh启动得很好。如果我在foo.sh中执行类似“echo $ 1”的操作,我会得到一个空字符串。如果我以相同的方式启动二进制文件,参数就可以了,我可以通过argv []来访问它们。为了将参数传递给foo.sh,还有什么我应该做的不同吗?

1 个答案:

答案 0 :(得分:0)

对我来说,posix_spawn()的argumentList参数是从0开始的,所以echo $ 1实际上输出了argumentList [1],当然,它设置为0.大小写已关闭。