device driver에서 shell command를 사용하고 그 결과를 받아 보고 싶습니다. 간단히 예를 들면 제가 코드 내에서 'ls /dev/vhdda'란 것을 shell에게 수행요청하고 그 결과를 프로그램 내에서 받아서 출력하려고 합니다. 어떤 방법이 있을까요? 혹은 무엇을 보고 참고 하면 될지 아시는 분 있으면 답변 부탁드립니다.
FILE *popen(const char *command, const char *mode);
popen으로 열고 fread, fwrite등 일반 FILE i/o에 사용하는 함수 그대로 사용해서 처리하면 됩니다..
strcpy(cmd, "ps -eopid,comm | grep abcd"); if ((pfp = popen(cmd, "r")) == (FILE *) NULL) return(ERROR); while (fgets(buffer, 200, pfp) != NULL) { if ((tok = strtok(buffer, " \n")) == NULL) continue; pid = atol(tok); if ((tok = strtok(NULL, " \n")) == NULL) continue; strcpy(exec_file, tok);
>/dev/null 2>&1
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
popen함수 사용하시면 됩니다.
popen으로 열고 fread, fwrite등 일반 FILE i/o에 사용하는 함수 그대로 사용해서 처리하면 됩니다..
>/dev/null 2>&1
댓글 달기