servico mestre
O programa a seguir é um exemplo simples da utlização das primitivas de emissão e recepção de sinais com o objetivo de permitir a comunicação entre dois processos. A execução deste programa permite ainda de assegurar que o processo executando a rotina de desvio é mesmo aquele que recebeu o sinal. /* comunicacao simples entre dois processos atraves de sinais */
#include
#include
#include
#include
void it_fils()
{
printf("- Sim, sim. E darei um jeito nisso eu mesmo... ARGHH...\n") ; kill (getpid(),SIGINT) ;
}
void fils()
{
signal(SIGUSR1,it_fils) ; printf("- Papai conte mais uma vez, como foi que voce me fez?\n") ; while(1) ;
}
int main()
{
int pid ;
}
if ((pid=fork())==0) fils() ; else { sleep(2) ; printf("- Filhinho, quer ir passear no reino dos mortos?\n") ; kill (pid,SIGUSR1) ; sleep(1); } exit(0); Resultado da execução: root:~/> test_kill_signal
- Papai conte mais uma vez, como foi que voce me fez?
- Filhinho, quer ir passear no reino dos mortos?
- Sim, sim. E darei um jeito nisso eu mesmo... ARGHH...
Um processo criou um filho que parece não estar vivendo muito feliz. Este processo vai enviar então ao filho um sinal SIGUSR1 ao filho. Com a recepção desse sinal, o filho desesperado decide enviar a si mesmo um sinal SIGINT para se suicidar.
Noção de tabela de nós de indexação
Esta tabela está localizada no início de cada região de disco contendo um sistema de arquivos
UNIX. Cada nó de indexação (ou inode desta tabela corresponde a um arquivo e contém as informações necessárias essenciais sobre os arquivos gravados no disco:
1. O tipo do arquivo (detalhado a seguir);
2. O número de links (número de arquivos dando acesso ao mesmo arquivo);
3. O proprietário e seu grupo;
4. O conjunto de direitos de acesso associados ao arquivo para o proprietário do arquivo, o grupo ao qual ele pertence, e enfim todos os outros usuários do sistema;
5. O tamanho em número de bytes;