Como executo um comando parted com uma função C?

0

Gostaria de executar o comando Linux "parted" por meio de uma função de linguagem C?

Estou usando o Linux Ubuntu, eclipse.

Obrigado!

    
por Ella Kustanovich 17.03.2015 / 14:52

1 resposta

1

Em teoria, no seu programa em C, você deve adicionar uma linha como esta:

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

O programa C deve ser executado com privilégios de root (ou executado através de sudo ). A variável res contém o resultado do comando (consulte man system para detalhes).

Como alternativa, use um comando da família exec (veja man exec para detalhes).

Por exemplo, isso deve ler a tabela de partições do disco /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);
          }
     }   
}
    
por 17.03.2015 / 15:23