Thursday, May 7, 2009

Algumas das Principais Funções Utilizadas

Biblioteca unistd.h

/* Clona o processo que está chamando a função, criando uma cópia exata.
Retorna -1 para erros, 0 para o novo processo e o ID do novo processo para o processo inicial.*/
__pid_t fork (void)

/* Cria um canal de comunicação de via única (pipe).
Caso a execução ocorra com sucesso, dois filedescriptors são armazenados em __pipedes;
Os bytes escritos em __pipedes[1] podem ser lidos em __pipedes[0].
Retorna 0 quando ocorre sucesso, -1 caso contrário.*/
int pipe (int __pipedes[2])

/* Fecha o file descriptor __fd.*/
int close (int __fd);

/* Lê __n bytes de __fd para __buf. Retorna o número lido, -1 para erros ou 0 para EOF.*/
ssize_t read (int __fd, void *__buf, size_t __nbytes)

/* Escreve __n bytes de __buf para __fd. Retorna o número escrito, ou -1.*/
ssize_t write (int __fd, __const void *__buf, size_t __n);

/* Faz com que o processo durma por __seconds, ou até que um signal chegue e não seja ignorado. A função retorna __seconds menos o número de segundos que o processo de fato dormiu (logo, retorna zero se ele dormiu todo o período).
Não há valor de retorno para indicar erro, mas caso a função retorne __seconds, então provavelmente a função não executou corretamente.*/
unsigned int sleep (unsigned int __seconds);


Biblioteca semaphore.h

/*Initializa o semáforo apontado por __sem, setando seu contador interno para __value. Se o argumento __pshared tiver um valor diferente de zero, então o semáforo é compartilhado entre processos; nesse caso, qualquer processo que puder acessar o semáforo __sem poderá usar __sem para executar as operações sem_wait(), sem_post(), sem_trywait() e sem_destroy();
Sempre retorna 0.*/

int sem_init(sem_t * __sem, int __pshared, unsigned int __value);

/* Aumenta atomicamente o contador do semáforo apontado por __sem. Essa função nunca é bloqueada e pode ser usada com segurança em tratadores de sinais assíncronos. Sempre retorna 0.*/
int sem_post(sem_t * __sem);

/* Suspende a tarefa de chamada até que o contador do semáforo apontado por __sem tenha um valor diferente de zero. Então, o contador é atomicamente decrementado. */
int sem_wait(sem_t * __sem);


Biblioteca pthread.h

/* Faz com que a thread que está chamando espere o fim da execução da thread __th. O status de saída da thread é armazenado em *__thread_return, se __thread_return não for nulo. */
int pthread_join (pthread_t __th, void **__thread_return);

/* Cria uma thread com os atributos especificados por __attr e que ao ser criada executa a função __start_routine com o argumento __arg. */
int pthread_create(pthread_t *__thread, const pthread_attr_t *__attr, void*(*__start_routine)(void *), void *__arg);

No comments:

Post a Comment