簡單比較C語言中的execl()函數(shù)與execlp()函數(shù)
C語言execl()函數(shù):執(zhí)行文件函數(shù)
頭文件:
#include <unistd.h>
定義函數(shù):
int execl(const char * path, const char * arg, ...);
函數(shù)說明:execl()用來執(zhí)行參數(shù)path 字符串所代表的文件路徑, 接下來的參數(shù)代表執(zhí)行該文件時傳遞過去的argv(0), argv[1], ..., 最后一個參數(shù)必須用空指針(NULL)作結(jié)束.
返回值:如果執(zhí)行成功則函數(shù)不會返回, 執(zhí)行失敗則直接返回-1, 失敗原因存于errno 中.
范例
#include <unistd.h> main() { execl("/bin/ls", "ls", "-al", "/etc/passwd", (char *)0); }
執(zhí)行:
/*執(zhí)行/bin/ls -al /etc/passwd */ -rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
C語言execlp()函數(shù):從PATH 環(huán)境變量中查找文件并執(zhí)行
頭文件:
#include <unistd.h>
定義函數(shù):
int execlp(const char * file, const char * arg, ...);
函數(shù)說明:execlp()會從PATH 環(huán)境變量所指的目錄中查找符合參數(shù)file 的文件名, 找到后便執(zhí)行該文件, 然后將第二個以后的參數(shù)當做該文件的argv[0], argv[1], ..., 最后一個參數(shù)必須用空指針(NULL)作結(jié)束.
返回值:如果執(zhí)行成功則函數(shù)不會返回, 執(zhí)行失敗則直接返回-1, 失敗原因存于errno 中.
錯誤代碼:參考 execve().
范例
/* 執(zhí)行l(wèi)s -al /etc/passwd execlp()會依PATH 變量中的/bin 找到/bin/ls */ #include <unistd.h> main() { execlp("ls", "ls", "-al", "/etc/passwd", (char *)0); }
執(zhí)行:
-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
相關(guān)文章
C語言中strlen() strcpy() strcat() strcmp()函數(shù)的實現(xiàn)方法
這篇文章主要介紹了C語言中strlen() strcpy() strcat() strcmp()函數(shù)的實現(xiàn)方法,需要的朋友可以參考下2017-08-08利用C++開發(fā)一個protobuf動態(tài)解析工具
數(shù)據(jù)庫中存儲的protobuf序列化的內(nèi)容,有時候查問題想直接解析查看內(nèi)容。很多編碼在網(wǎng)上很容易找到編解碼工具,但protobuf沒有找到編解碼工具,可能這樣的需求比較少吧,那就自己用C++實現(xiàn)一個,感興趣的可以了解一下2023-01-01詳解如何將Spire.XLS for C++集成到C++程序中
Spire.XLS for C++ 是一個 Excel 庫,供開發(fā)人員在任何類型的 C++ 應(yīng)用程序中操作 Excel 文檔(XLS、XLSX、XLSB 和 XLSM)。 本文演示了如何以兩種不同的方式將 Spire.XLS for C++ 集成到您的 C++ 應(yīng)用程序中2023-03-03Qt+GDAL庫實現(xiàn)制作經(jīng)緯度坐標轉(zhuǎn)換工具
這篇文章主要為大家詳細介紹了如何利用Qt和GDAL庫實現(xiàn)制作經(jīng)緯度坐標轉(zhuǎn)換工具,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下2023-04-04