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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts