2013년 9월 27일 금요일

FALINUX 건재하네... 자료도 많긍.



리눅스에서 C 언어로 코딩을 하다보면 Shell 명령어를 콜하고 싶을 때가 있습니다.
파일 처리를 한다던가 다른 프로세스나 데몬을 실행한다던가 하는 경우인데요.
이럴 경우 간단하게 처리하는 함수가  있습니다.
system 이라는 함수인데 다음과 같습니다.

       이름
                 system - shell 명령어 실행하기
          사용법
                 #include
                 int system (const char * string);
          설명
                 system() 함수는 /bin/sh -c string를호출하여 string 지정
                 된 명령어를 실행하며, 명령어가 끝난후 반환된다.  명령어
                 실 행되는 동안, SIGCHLD 블럭되며, SIGINT 그리고 SIGQUIT
                 는 무시된다.
          반환값
                 리턴된 값은만일 /bin/sh 위한 execve() 호출이 실패
                 면, 리턴된 값은 127 이며, 다른 에러가 있다면 -1, 그렇지
                 으면 명령어의리턴코드가 반환된다.
                 string 값이 NULL이라면, system() shell 이용할수
                 면 0 아닌 값을, 그렇지 않으면 0 값을 반환한다.
                 system()  은 어떤 다른 자식의 wait 상태에 영향을 주지 않는
                 다.

  
예제는 
int ret = system("ls -l");


 한가지 문제는 system 함수의 리턴 값으로는 실행한 shell 명령어나 프로세스의 결과를 리턴할 없다. 이런 경우에는 실행 결과를 파일로 저장한 후에 코드에서 파일을 읽어서 결과를 얻어오는 방법을 사용해야하는 불편이 있다.

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...