如何使用 C 函数执行 split 命令?

如何使用 C 函数执行 split 命令?

我想通过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);
          }
     }   
}

相关内容