中不起作用我需要將兩個地址(32位)傳遞給來自C的execl命令產生的進程,如下所示。在第一種方案:將參數傳遞給派生進程在C
char buffer[18];
sprintf (&buffer[0],"%x\0 %x\0",lock, count);
arg_list[0]=&(buffer[0]);
arg_list[1]=&(buffer[10]);
execl ("/somedirectory/second_process", arg_list[0], arg_list[1], NULL);
然後在我的第二個節目我嘗試解析地址如下:
if (argc != 2) {
printf ("PROCESS 2: Invalid number of arguments. Terminating %i\n", argc);
return -1;
}
if (!(sscanf (argv[1],"%x",&lock)) || !(sscanf (argv[2],"%x",&count))) {
printf ("PROCESS 2: Problem with parameters passed in");
return -1;
但我的程序不斷給人一個錯誤說,在傳遞的參數是無效的。當我嘗試打印出接收到的參數時,我的程序掛起。
printf ("The arguments passsed in are %s %s", argv[1], argv[2]);
FIXED:
我製作EXECL呼叫不正確。它應該是:
execl ("/somedirectory/second_process", "second_process" arg_list[0], arg_list[1], NULL);
而且在過程2:
if (argc != 3) {
printf ("PROCESS 2: Invalid number of arguments. Terminating %i\n", argc);
return -1;
}
正如應該是這個過程的名稱如下克里斯建議通過的第一個參數。
謝謝!
「excel命令產生的進程」 - Excel?那麼這個Visual Basic? (只是在開玩笑。) – 2012-09-21 20:27:38
sorrry。固定:) – Falcata
沒有問題的隊友;) – 2012-09-21 20:30:43