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