Linux 에서 C 언어 에서 셸 문 구 를 실행 합 니 다.
방법 1: system () 의 사용 system 명령 은 간략 하고 효율 적 인 작용 으로 광범 위 하 게 이용 되 고 다음은 함수 원형 이다.int system(const char *command);/home/farsight 에 test. sh 파일 을 새로 만 듭 니 다. 다음 과 같 습 니 다.
#!/bin/bash
echo $HOME
echo "the is test!"
test. c 파일 은 다음 과 같 습 니 다.
#include
int main()
{
system("bash /home/farsight/test.sh");
//system("/home/farsight/test.sh");//【另一种方法】
return 0;
}
다음 명령 을 실행 하여 컴 파일 합 니 다:
gcc test.c -o test
테스트 명령:
./test
결 과 는 다음 과 같다.
the is test!
방법 2: popen () 사용
FILE *popen(const char *command, const char *type);
int pclose(FILE *stream);
다른 것 은 변경 하지 않 고 test. c 파일 을 직접 수정 합 니 다.
#include
int main()
{
char buffer[80];
FILE *fp=popen("bash /home/farsight/test.sh","r");
fgets(buffer,sizeof(buffer),fp);
printf("%s",buffer);
pclose(fp);
return 0;
}
방법 3: exec 함수 클 러 스 터
주의해 야 할 것 은 exec 는 1 개의 함수 가 아니 라 한 그룹의 함수 의 통칭 일 뿐 다음 6 개의 함 수 를 포함한다.
#include
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg, ..., char *const envp[]);
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);
int execve(const char *path, char *const argv[], char *const envp[];
이 6 개의 함수 이름 이 다 르 고 받 아들 이 는 매개 변수 도 다르다 는 것 을 알 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.