我想通过C语言函数执行Linux命令“parted”?
我使用的是Linux Ubuntu,eclipse。
谢谢!
答案1
理论上,在你的 C 程序中,你应该添加这样一行:
int res = system("/bin/parted <options>");
C 程序必须以 root 权限执行(或通过 运行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);
}
}
}