一、system()函式
system()會呼叫fork()產生子程序,由子程序來呼叫/bin/sh-c string來執行引數string字 符串所代表的命令,此命令執行完後隨即返回原呼叫的程序。在呼叫system()期間sigchld 訊號會被暫時擱置,sigint和sigquit 訊號則會被忽略。
1、原型:
#include
intsystem
(const
char
*command)
;
2、返回值:
如果system()在呼叫/bin/sh時失敗則返回127,其他失敗原因返回-1。若引數string為空指標(null),則返回非零值。
如果system()呼叫成功則最後會返回執行shell命令後的返回值,但是此返回值也有可能為 system()呼叫/bin/sh失敗所返回的127,因此最好能再檢查errno 來確認執行成功。
#include
#include
#include
intmain
(int argc,
char
**ar**)
printf
("system susess\n");
system
("pause");
return0;
}
執行結果:
clc@embed_learn:
~$ gcc system.c
clc@embed_learn:
~$ .
/a.out
ar**[0]
=main
ar**[1]
=aaar**[2]
=bbb
sh:1
: pause: not found
system susess
sh:1
: pause: not found
二、popen()函式
相比system/exec族函式好處,可以將程式執行的結果放到乙個管道中方便捕獲資訊。
原型:
#include
file *
popen
(const
char
*command,
const
char
*type)
;int
pclose
(file *stream)
;
引數說明:
command: 是指向以null結束的shell命令字串的指標。
type: 許可權;讀、寫(w、r)。
返回值:
如果呼叫成功,返回乙個讀\寫指標,否則返回null
demo測試:
#include
#include
#include
intmain
(void
)
執行結果:
clc@embed_learn:
~$ .
/a.out
readbuf=
pid tty time cmd
2870 pts/000
:00:01 bash
9024 pts/000
:00:00 a.out
9025 pts/000
:00:00 sh
9026 pts/000
:00:00 ps
sh:1
: pause: not found
c max函式怎麼用 MAX函式怎麼用?
通常情況下,max函式主要用來返回一組數值中的最大值 語法結構 max 數值1,數值2,如下圖 所示 除了這個基本應用外,max函式其實還有很多非常巧妙的應用,我們來看下面的3個例項。1 合併單元格填充序列號 這裡其實也可以用max函式來填充序列號,輸入公式 max a 1 a1 1,按ctrl e...
python用psf函式 python 函式
6.1 函式介紹 1 為什麼要有函式?沒有函式帶來的困擾?組織結構不清晰,可讀性差 冗餘 可擴充套件性差 2 什麼是函式 具備某乙個功能的工具 函式 事先準備工具 函式的定義 拿來就用 重複使用 函式的呼叫 ps 先定義後呼叫 3 函式的分類 內建函式 len,max 10,11 help 函式名 ...
GetSystemMetrics 函式的用法
可以用getsystemmetrics函式可以獲取系統解析度,但這只是其功能之一,getsystemmetrics函式只有乙個引數,稱之為 索引 這個索引有75個識別符號,通過設定不同的識別符號就可以獲取系統解析度 窗體顯示區域的寬度和高度 滾動條的寬度和高度。為了使使getsystemmetric...