C 함수를 사용하여 분할 명령을 실행하는 방법은 무엇입니까?

C 함수를 사용하여 분할 명령을 실행하는 방법은 무엇입니까?

C 언어 기능을 통해 Linux 명령 "parted"를 실행하고 싶습니까?

저는 Linux Ubuntu, Eclipse를 사용하고 있습니다.

감사해요!

답변1

이론적으로 C 프로그램에서는 다음과 같은 줄을 추가해야 합니다.

int res = system("/bin/parted <options>");

C 프로그램은 루트 권한으로(또는 를 실행하여) 실행되어야 합니다 sudo. 이 res변수에는 명령 결과가 포함됩니다( man system자세한 내용 참조).

대안으로 exec 명령 계열을 사용할 수 있습니다( man exec자세한 내용은 참고자료 참조).

/dev/sdb예를 들어, 디스크의 파티션 테이블을 읽어야 합니다 .

#include <stdlib.h>

int main(int argc, char **argv)
{
     int res = 0;
     res = system("/bin/parted -s /dev/sdb print > /var/log/mypartedlist.txt");
     if (res == -1) /* command not executed  */
        exit(1);
     else /* command ok */
     {
          if (WIFEXITED(res))
          {
              if (WEXITSTATUS(res) == 0)
                  printf("Command executed ok\n");
              else
                  printf("Command had a trouble\n");
          }
          else
          {
              printf("Problems running system\n");
              exit(2);
          }
     }   
}

관련 정보