Linux
如何在 C 程序中顯式載入 shell 解釋器
我想創建一個不可讀**/可寫的****可執行腳本**
然而,由於解釋器需要讀取這個文件,所以不可能直接這樣做。因此,我想知道是否可以將解釋器與我的腳本一起顯式載入到 C 程序中。
這將允許我根據需要設置 C 程序的權限。
您可以使用以下函式從 C 應用程序呼叫 shell 腳本
system()
:system() 通過呼叫 /bin/sh -c 命令執行 command 中指定的命令,並在命令完成後返回。在命令執行過程中,SIGCHLD 將被阻塞,而 SIGINT 和 SIGQUIT 將被忽略。
例子:
#include <stdlib.h> int main(int argc, char *argv[]) { char* command = "\ for i in 1 2 3 4 5;\ do echo \"$i\"; \ done"; system(command); return 0; }
跑步:
$ gcc test.c -o test $ chmod 100 test $ ./test 1 2 3 4 5
請記住,參數是命令字元串,因此您必須用分號終止行。您還必須轉義引號。