int
system
(const
char
*command);
輸入command指的是要執行的shell命令。
file *
popen
(const
char
*command,
const
char
*type)
;int
pclose
(file *stream)
;
popen函式是首先fork乙個子程序,然後exec,執行乙個shell,在這個shell中執行引數command命令。引數type 可讀r,可寫w,不能同時。rw和r一樣。使用完之後記得使用pclose關閉。
void
print_result
(file *fp)
printf
("\n>>>\n");
while
(memset
(buf,0,
sizeof
(buf)),
fgets
(buf,
sizeof
(buf)-1
, fp)!=0
)printf
("\n<<<\n");
}int
main
(void
)print_result
(fp)
;pclose
(fp)
;return0;
}
#include
#include
#define buf_len 128
void
cmd_exec
(const
char
* cmd,
char
*result)
while
(fgets
(result, buf_len, fp)!=0
)pclose
(fp);}
intmain
(void);
int ret =0;
ret =
system
("ntpdate time.pool.aliyun.com");
printf
("ret = %d"
,ret)
;cmd_exec
("echo $?"
,buf)
;printf
("echo result %s"
,buf)
;return0;
}
linux c 執行shell命令並獲取返回結果
最近在專案中用到了c語言執行shell命令的問題,調查了一下,一般有system函式 exec族函式,但是還不太清楚怎麼獲取shell命令執行的返回資訊。例如執行乙個ifconfig命令,肯定需要獲取ifconfig命令的返回值的。接著調查的話,發現有乙個popen函式,也可以執行shell命令,並...
C語言執行shell命令
1 system 執行shell 命令 相關函式 fork,execve,waitpid,popen 表頭檔案 include 定義函式 int system const char string 函式說明 system 會呼叫fork 產生子程序,由子程序來呼叫 bin sh c string來執行...
go語言執行shell命令
go語言執行shell命令 package main import os exec fmt os strings func main 預設輸出有乙個換行 fmt.println string whoami 指定引數後過濾換行符 fmt.println strings.trim string whoa...