Jump to content
Fórum Script Brasil
  • 0

biblioteca semaphore.h


LucasSouza
 Share

Question

1 answer to this question

Recommended Posts

  • 0

Olá!

Durante a compilação de um programa existem duas fases:

1- A compilação propriamente dita, que é o processo em que é gerado o arquivo objeto do seu código

2- A linkagem, que é a geração do executável através da união de todo o código necessário pelo seu programa. Isto inclui o arquivo objeto gerado no passo anterior e mais os outros arquivos objeto contendo as funções não definidas no seu código como o printf ou o sem_init.

No caso do printf, por ser uma função padrão, já é parte integrante do compilador e portanto já é adicionada automaticamente. Já para a função sem_init o compilador não inclui automaticamente então você deve especificar.

A adição do semaphore.h no seu código apenas declara que existe a função com os parâmetros informados. Assim o compilador consegue executar o primeiro passo mas não o segundo.

Se você estiver compilando no linux com o gcc, use a seguinte sintaxe:

gcc -pthread -o programa arquivo.c
Sendo programa o nome do executável que será gerado e arquivo.c o nome do seu arquivocom o código fonte. Além disso a função sem_init deve receber o endereço do semáforo. O correto seria chamar ela assim:
sem_init(&customers,TRUE, 0);

Abraços,

Marcelo Utikawa da Fonseca

Edited by Marcelo Utikawa da Fonseca
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...