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);
}
}
}