C調用python腳本實例

僅供參考

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <stdio.h>
#include <assert.h>
#include <syslog.h>
#include <unistd.h>
#include <string.h>


int process_wifi_x86(const char *ssid, const char *key, u_int32_t way,u_int32_t fre) {
    printf("%s\n", "call process_wifi_x86");
    if (access("./cmx_setWifi_x86.py", X_OK) < 0) {
        return -1;
    }

    char cmd_buf[256];
    memset(cmd_buf,0, sizeof(cmd_buf));
    const char* cmd_str = "python cmx_setWifi_x86.py";
    sprintf(cmd_buf, " %s %s %s %d %d", cmd_str, ssid, key, way, fre);
    printf("%s\n", cmd_buf);

    FILE *stream;
    char result[1024*5];
    memset(result,0, sizeof(result));

    stream = popen(cmd_buf, "r");
    if (stream == NULL) {
        printf("%s","Failed to run command\n");
        pclose(stream);
        exit(-1);
    }

    /*fread( buf, sizeof(char), sizeof(buf),  stream)
    第二個參數表示每次讀的個數,第三個參數表示讀多少次
    */
    int ret = fread(result, sizeof(char), sizeof(result), stream);
    if (ret > 0){
        printf("%s", result);
    }else{
        printf("%s","fread err");
    }
    pclose(stream);
    return ret;
}

int main()
{
    printf("%s\n","==========MAIN RUN==========");
    int ret = process_wifi_x86("cnm", "nmb", 6, 9);
    if(ret > 0 ){
        printf("%s\n","sucess");
    }else{
        printf("%s\n","failed");
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章