Execlp意思
execlp
是 C 語言中的一個函式,它是 exec
家族中的一員,用於在當前進程的空間中執行一個新的程式。execlp
的意思是 "execute a file from a path",即從路徑執行一個檔案。
execlp
的原型如下:
#include <unistd.h>
int execlp(const char *file, const char *arg, ...);
其中,file
是指定要執行的檔案名稱,arg
是要傳遞給新程式的命令行參數。execlp
會打開 file
指定的檔案,然後逐個將後續的參數 arg
複製到 argv
數組中,並調用 execve
系統調用來執行新的程式。
如果 execlp
成功,它會返回一個非負的整數,這是新程式的進程ID。如果 execlp
失敗,它會返回 -1,並設定 errno
變數來指示錯誤類型。
execlp
函式通常用於在 shell 腳本中執行外部命令,或者在 C 程式中作為系統命令執行。它與 execvp
的區別在於,execlp
會搜尋系統的路徑(PATH 環境變數)來查找 file
指定的檔案,而 execvp
則不會。
以下是 execlp
的一個簡單示例:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
if (execlp("ls", "ls", "-l", NULL) == -1) {
perror("execlp failed");
return 1;
}
return 0;
}
在這個例子中,execlp
會搜尋 ls
命令,並使用 -l
選項來列出當前目錄的檔案和目錄。如果 execlp
成功,程式會退出,並返回新程式的進程ID。如果 execlp
失敗,它會列印錯誤信息,並返回 -1。