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

  1. 带返回返回值,使用管道I/O(popen)
    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
    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;
    }