#include #include #include #include #include static int getresultfromsystemcall(const char* pcmd, char* presult, int size)
//hide stdout
int bak_fd = dup(stdout_fileno);
int new_fd = dup2(fd[1], stdout_fileno);
//the output of `pcmd` is write into fd[1]
system(pcmd);
read(fd[0], presult, size-1);
presult[strlen(presult)-1] = 0;
//resume stdout
dup2(bak_fd, new_fd);
return 0;
}int main(void)
; char cmd[100] = ;
sprintf(cmd, "cat %s | grep -m 1 -e \"^%s\" | cut -d= -f2 | sed 's/[[:space:]]*//g'", filepath, key);
getresultfromsystemcall(cmd, res, sizeof(res)/sizeof(res[0]));
//getresultfromsystemcall("export aaa=1234 && echo $", res, sizeof(res)/sizeof(res[0]));
printf("result is [%s]\n", res);
return 0;
}
system系統呼叫的使用
system 系統呼叫在應用中很廣泛 可以直接在c 中呼叫命令,執行一些特殊操作,用法如下.1.直接執行命令 可以在c檔案中直接執行命令,這是基本用法,例如 system mkdir test system chmod 777 test.bin 等等 2.如果需要執行的命令是變動的,則可以使用字串變...
vc 呼叫exe獲取輸出資訊
呼叫命令列程式,返回結果。把命令列結果輸入到管道中,exe的輸出資訊都存在了stroutput這個變數裡。cstring strcmd l yara64.exe c users windows32 downloads yara master yara master windows vs2017 x6...
獲取設定時間系統呼叫
名字 用處time t time time t t 獲取系統時間,獲取的為秒數 int stime time t t 設定系統時間,設定的為秒數 int gettimeofday struct timeval tv,struct timezone tz 設定系統時間,可獲取秒數與微秒數 int se...