[C] Unistd.h

Ruanes

Power Member
OI,

alguem tem o souce code do header unistd.h?

preciso para uns programas e o meu compilador não o tem. Não percebo muito de headers e já me passou pela cabeça que não existisse no meu compilador por causa do so (windows) mas não tenho a certeza.
 
Olá,

para teres acesso ao unistd.h, precisas de um ambiente compatível com a POSIX. Em Windows podes utilizar, por exemplo, o MinGW. Tens aqui um howto: http://www.mingw.org/MinGWiki/index.php/MinGWHowTo.

Boa sorte!

Cumps,
JP

Já saquei o MinGw aqui: http://sourceforge.net/project/showfiles.php?group_id=2435 (o primeiro que aparece)

só que agora depois de o ter instalado não percebo como funciona. Não sou muito bom a trabalhar com compiladores, muito menos instala-los.

P.S. Instalei tambem o gcc com o MinGW.
 
@lordnins: Não conhecia Code::Blocks, parece ser interessante.

De qualquer modo, caso pretendas utilizar o ambiente MinGW/MSYS em modo nativo, deixo aqui um pequeno howto; foi feito um pouco em cima do joelho, por isso não garanto que esteja livre de problemas.

  1. Descarrega e executa o instalador do MinGW:
    1. Download and Install;
    2. I Agree;
    3. Current;
    4. Selecciona MinGW Base Tools, g++ compiler e MinGW Make;
    5. Next;
    6. Install.
  2. Descarrega e executa o instalador do MSYS:
    1. Next;
    2. Yes;
    3. Next;
    4. Next;
    5. Next;
    6. You guessed it... Next;
    7. Install;
    8. Nesta altura vai-te aparecer uma linha de comandos do Windows, escolhe y e continua;
    9. y;
    10. c:/mingw - NOTA: A barra é mesmo /;
    11. Finish.
A partir deste momento podes ir a Start->MinGW->MSYS->msys e tens uma linha de comandos, onde poderás utilizar coisas como o gcc, vim, etc.

Atenção que o MSYS não é estritamente necessário, mas dá-te jeito porque tens as PATHS pré-configuradas e não precisas de fazer mais nada (como configurar o teu IDE) para começar a compilar código C, exemplo:
Código:
$ cat hello.c
#include <stdio.h>

int main(int argc, char *argv[])
{
  printf("Hello, World!");

  return 0;
}

$ gcc hello.c -o hello
$ ./hello
$ Hello, World!
Tenho que esclarecer uma coisa:
No meu post anterior disse que o MinGW te oferecia compatibilidade com a API POSIX. Após verificar a documentação, percebi que estava errado: embora fornecendo o unistd.h, o MinGW não te dá compatibilidade total com a POSIX. Isto pode ser, ou não ser, um problema para ti; sugiro que primeiro testes o teu código com o MinGW, já que tem uma performance superior à alternativa.

Caso compatibilidade com a API POSIX em Windows seja um requisito mandatório, irás precisar do Cygwin.

Cumps,
JP
 
@lordnins: Não conhecia Code::Blocks, parece ser interessante.

De qualquer modo, caso pretendas utilizar o ambiente MinGW/MSYS em modo nativo, deixo aqui um pequeno howto; foi feito um pouco em cima do joelho, por isso não garanto que esteja livre de problemas.

  1. Descarrega e executa o instalador do MinGW:
    1. Download and Install;
    2. I Agree;
    3. Current;
    4. Selecciona MinGW Base Tools, g++ compiler e MinGW Make;
    5. Next;
    6. Install.
  2. Descarrega e executa o instalador do MSYS:
    1. Next;
    2. Yes;
    3. Next;
    4. Next;
    5. Next;
    6. You guessed it... Next;
    7. Install;
    8. Nesta altura vai-te aparecer uma linha de comandos do Windows, escolhe y e continua;
    9. y;
    10. c:/mingw - NOTA: A barra é mesmo /;
    11. Finish.
A partir deste momento podes ir a Start->MinGW->MSYS->msys e tens uma linha de comandos, onde poderás utilizar coisas como o gcc, vim, etc.

Atenção que o MSYS não é estritamente necessário, mas dá-te jeito porque tens as PATHS pré-configuradas e não precisas de fazer mais nada (como configurar o teu IDE) para começar a compilar código C, exemplo:
Código:
$ cat hello.c
#include <stdio.h>
 
int main(int argc, char *argv[])
{
  printf("Hello, World!");
 
  return 0;
}
 
$ gcc hello.c -o hello
$ ./hello
$ Hello, World!
Tenho que esclarecer uma coisa:
No meu post anterior disse que o MinGW te oferecia compatibilidade com a API POSIX. Após verificar a documentação, percebi que estava errado: embora fornecendo o unistd.h, o MinGW não te dá compatibilidade total com a POSIX. Isto pode ser, ou não ser, um problema para ti; sugiro que primeiro testes o teu código com o MinGW, já que tem uma performance superior à alternativa.

Caso compatibilidade com a API POSIX em Windows seja um requisito mandatório, irás precisar do Cygwin.

Cumps,
JP
não sei se é normal mas a "suposta" linha de comandos aparece com fundo branco e letras verdes.

tambem não sei se é normal mas não era suposto aparecer a localização em vez de o nome de utilizador e mais uma letras e numeros (que é o que aparece).

para alem disso tive a experimentar alguns comandos da linha de comandos e não funcionam lá.
 
Olá,

não sei se é normal mas a "suposta" linha de comandos aparece com fundo branco e letras verdes.
Sim, é normal. Esse terminal é o rxvt e, caso queiras, podes alterar as cores.

tambem não sei se é normal mas não era suposto aparecer a localização em vez de o nome de utilizador e mais uma letras e numeros (que é o que aparece).
Também é normal, isso está simplesmente dependente do valor da variável de ambiente - PS1 - que controla a prompt da tua shell. Se quiseres um aspecto mais "familiar", podes introduzir o seguinte comando:
Código:
export PS1="\u@\H > "
para alem disso tive a experimentar alguns comandos da linha de comandos e não funcionam lá.
Quais foram os comandos? Já agora, fica uma nota: o MinGW (Minimalist GNU for Windows) e o MSYS (Minimal SYStem), como os próprios nomes indicam, não te dão um ambiente POSIX completo - apenas o necessário para compilar aplicações (e alguns extras).

Cumps,
JP
 
Back
Topo