Programa C no Linux [RESOLVIDO]

1. Programa C no Linux [RESOLVIDO]

Luiz Carlos de Moura
lcmoura

(usa Ubuntu)

Enviado em 26/02/2009 - 20:23h

Pessoal, com o programa Kate, no Ubuntu, salvei o seguinte código com o nome pessoal1.c em /home/amazon/Documentos/

#include <stdio>
#include <stdlib>
{
printf("oi, pessoal! \n");
system("PAUSE");
return 0;
}

quando no Konsole digito
$ gcc pessoal1.c -o pessoal1
obtenho os seguintes erros:
stdio:arquivo ou diretório inexistente
stdlib:arquivo ou diretório inexistente

Tem algo a ver com o diretório onde salvei o arquivo e o diretório das classes C, não? Alguém me ajuda? Acho que deve ser básico, mas estou estreando no Linux.
Grato,

Luiz


  


2. Re: Programa C no Linux [RESOLVIDO]

Marcelo A. B. Slomp
mslomp

(usa Slackware)

Enviado em 26/02/2009 - 21:49h

faltou colocar a extensão .h nas headers:
#include <stdio.h>

outros detalhes:
1 - você não colocou a declaração de main()
2 - system("PAUSE") não vai funcionar no linux. pause está implementado em conio.h (dos). pode-se 'emulá-la' com o uso da macro getchar()

segue a versão funcional do código:

#include <stdio.h>

int main(void)
{
printf("oi, pessoal! \n");
while (!getchar()) /* 'emulando' system("PAUSE") - pausa até pressionar <enter> */
;
return 0;
}


3. Programa C no Linux

Luiz Carlos de Moura
lcmoura

(usa Ubuntu)

Enviado em 26/02/2009 - 22:56h

Amigo,

muito bem observado! Esqueci mesmo dos .h!
Após instalar um tal de build-essential e fazer essa correção, funcionou! Mas de fato, obtive a mensagem de PAUSE:not found. Tentei CLEAR, mas também não achou.
Vou testar sua sugestão. Entendi que PAUSE e CLEAR funcionam no DOS, certo?
Muito obrigado!



4. Programa C no Linux

Luiz Carlos de Moura
lcmoura

(usa Ubuntu)

Enviado em 26/02/2009 - 23:02h

Deu certo assim:

#include <stdio.h>
int main()
{
printf("oi, pessoal! \n");
while(!getchar());
return 0;
}

Não precisa da stdlib.h porque esta é para DOS, certo?
ótima dica a do getchar()
Obrigado!!!


5. Re: Programa C no Linux [RESOLVIDO]

Fagner Amaral de Souza Candido
f_Candido

(usa Ubuntu)

Enviado em 27/02/2009 - 11:57h

Não. A lib stdlib.h não é para dos. Observe a nomeclatura:
std(standart)io(Entrada/Saída)
std(standart)lib(libraries)
Ela lhe oferece outras funções. Funciona tanto em DOS quanto em Linux.

Abraços






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts