나는실행 가능한 스크립트이것은 아니다읽기/쓰기 가능
그러나 인터프리터가 파일을 읽어야 하기 때문에 이를 직접적으로 수행하는 것은 불가능합니다. 그래서 내 스크립트와 함께 인터프리터를 C 프로그램에 명시적으로 로드할 수 있는지 궁금합니다.
이를 통해 내 필요에 따라 C 프로그램의 권한을 설정할 수 있습니다.
답변1
system()
다음 함수를 사용하여 C 애플리케이션에서 쉘 스크립트를 호출 할 수 있습니다 .
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
매개변수는 명령 문자열이므로 해당 줄은 세미콜론으로 끝나야 합니다. 또한 따옴표를 이스케이프 처리해야 합니다.