shell脚本:hello.sh
#!/bin/bash echo "i am in shell script" echo "param 1 is $1" echo "param 2 is $2" variable=$[ $1 + $2 ] echo "sum is $variable"
system接口:system.c
#include <stdio.h> #include <stdlib.h> #include <fcntl.h> void main(void) { printf("i am in c code!\r\n" system("/bin/bash ./hello.sh 10 20); }
输出:
i am in c code! i am in shell script! param 1 is 10 param 2 is 20 sum is 30
execlp接口:execlp.c
#include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> void main(void) { int ret = 0; int param1 = 10; int param2 = 20; printf("i am in c code!\r\n"); if(fork() == 0) { printf("execlp...........\r\n"); ret = execlp("/bin/bash", "bash", "hello.sh", ¶m1, ¶m2, NULL); if(ret < 0) { printf("execlp failed!\r\n"); return; } } }
这其中execlp的参数不管怎么填都得不到正确运行的结果
时间: 2024-10-27 00:42:28