1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[C] Correr comandos unix em C

Discussão em 'Programação' iniciada por SharkAD, 14 de Outubro de 2012. (Respostas: 2; Visualizações: 640)

  1. Boas,

    Quero fazer um programa em C que tenha o seguinte output:

    Date/time: 2012-10-14 18:33


    Para obter a data e a hora, posso usar o seguinte comando unix:
    date +%Y-%m-%d\ %H:%M

    e para que possa ser executado num programa em C, uso system("date ...").

    O problema é que queria que antes do resultado desse comando aparecesse a string "Date/time: ".

    Já experimentei de 2 maneiras:

    Código:
    int main()
    {
                printf("Date/time: ");
                system("date +%Y-%m-%d\ %H:%M");
                return 0;
    }
    
    e:

    Código:
    int main()
    {
                system("echo Date/time: ");
                system("date +%Y-%m-%d\ %H:%M");
                return 0;
    }
    
    O problema do 1º, é que o output fica assim:
    2012-10-14 18:33
    Date/time:

    O problema do 2º é que o output fica assim:
    Date/time:
    2012-10-14 18:33


    Não há hipótese de meter o output tal e qual como o quero?
     
  2. Sl0w

    Sl0w Power Member

    Experimenta usar o "popen". Lês o output do processo para um buffer e depois manipulas-o como te convenha.

    EDIT: Já agora, podes simpesmente fazer: system("echo blala: $(date)");, mas é uma solução menos versátil.
     
    Última edição: 14 de Outubro de 2012
  3. Ace-_Ventura

    Ace-_Ventura Power Member

Partilhar esta Página