1. 程式人生 > >fflash函式、strtok函式exec函式

fflash函式、strtok函式exec函式

一、fflush函式
函式定義:int fflush(FILE *stream);
1.fflush會強迫將緩衝區內的資料回寫到引數stream指向的檔案中,如果引數stream為NULL,fllush會將所有開啟的檔案資料更新
2.fflush(stdin)重新整理緩衝區,把緩衝區中的東西丟掉。 fflush(stdout)將緩衝區中的東西輸出到裝置中去。

二、字串切割函式strtok()
函式定義:char *strtok(char *s, const char *delim);
eg:將cmd指向的字串按空格分開,並存入argv中
void CutCmd(char *cmd, char **argv)
{
int count = 0;
char *p = strtok(cmd, ” “);
while(p != NULL)
{
argv[count++] = p;
p = strtok(NULL, ” “);
}
}

三、exec系列函式
1.函式說明:fork函式是用於建立一個子程序,該子程序幾乎是父程序的副本,而有時我們希望子程序去執行另外的程式,exec函式族就提供了一個在程序中啟動另一個程式執行的方法。它可以根據指定的檔名或目錄名找到可執行檔案,並用它來取代原呼叫程序的資料段、程式碼段和堆疊段,在執行完之後,原呼叫程序的內容除了程序號外,其他全部被新程式的內容替換了。另外,這裡的可執行檔案既可以是二進位制檔案,也可以是Linux下任何可執行指令碼檔案。
2.函式原型:
int execl(const char path, const char *arg, …, (char )0)
int execv(const char *path, char *const argv[])
int execle(const char path, const char *arg, …, (char

)0, char *const envp[])
int execve(const char *path, char *const argv[], char *const envp[])
int execlp(const char *file, const char *arg, …)
int execvp(const char *file, char *const argv[])
函式成功不返回, 失敗返回-1。