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。