Linux

如何在 C 程序中顯式載入 shell 解釋器

  • April 2, 2013

我想創建一個不可讀**/可寫的****可執行腳本**

然而,由於解釋器需要讀取這個文件,所以不可能直接這樣做。因此,我想知道是否可以將解釋器與我的腳本一起顯式載入到 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

請記住,參數是命令字元串,因此您必須用分號終止行。您還必須轉義引號。

引用自:https://unix.stackexchange.com/questions/70746