C调用Shell脚本

Linux中,在C语言中调用Shell脚本:

  1. 带返回返回值,使用管道I/O(popen)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    static int sys_exec_cmd_buf(char *cmd,char *buf,int size)
    {
    //ALOGV("sys_exec_cmd_buf %s\n",cmd);
    FILE *fp = 0;
    if((fp = popen(cmd, "r")) == NULL)
    return -1;

    //fread(buf,1,size,fp);
    if(fgets(buf, size, fp) == NULL)
    return -1;

    //fclose(fp);
    pclose(fp);
    return 0;
    }
  2. 不带返回值,使用system

    1
    2
    3
    4
    5
    6
    7
    static int sys_exec_cmd_str(const char *cmd)
    {
    //ALOGV("sys_exec_cmd_str %s\n",cmd);
    int ret = 0;
    ret = system(cmd);
    return ret;
    }
Donate comment here