首页 > 代码库 > [shell]system和execlp简单示例

[shell]system和execlp简单示例

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", &param1, &param2, NULL);
        if(ret < 0)
        {
             printf("execlp failed!\r\n");
             return;
         }
    }  
}

这其中execlp的参数不管怎么填都得不到正确运行的结果

 

[shell]system和execlp简单示例