Uma chamada de sistema (system calls) provê interface entre um processo e o sistema operacional. A chamada de sistema que permite realizar a movimentação do ponteiro do arquivo é:
- A)brk
Errada, porque brk altera o limite da area de dados do processo, relacionado a memoria, nao ao ponteiro de arquivo.
- B)fork
Errada, porque fork cria um novo processo filho a partir do processo atual.
- C)lseek
Certa, porque lseek reposiciona o offset do arquivo, isto e, movimenta o ponteiro do arquivo.
- D)getpid
Errada, porque getpid apenas retorna o PID do processo corrente.
Gabarito: C
Em Sistemas Operacionais, as chamadas de sistema sao a ponte entre o processo e o kernel. E por elas que o programa pede servicos como criar processos, obter informacoes, abrir arquivos e mudar a posicao de leitura ou escrita dentro de um arquivo. Pense nelas como o "balcao de atendimento" do sistema operacional: o processo faz o pedido e o SO executa a acao permitida. Nesta questao, o ponto central e a movimentacao do ponteiro do arquivo, ou seja, a chamada que altera a posicao atual no arquivo para a proxima operacao de leitura ou escrita. Essa funcao e tipicamente realizada por lseek, que ajusta o offset do arquivo. Em termos de API POSIX, ela serve exatamente para reposicionar o descritor de arquivo, o que explica o gabarito. As outras alternativas tratam de coisas bem diferentes: brk mexe na area de memoria do processo, fork cria um novo processo e getpid retorna o identificador do processo atual. Nada de "andar" pelo arquivo por aqui. A banca costuma cobrar esse tipo de memorizacao funcional, bem direta: nome da chamada, finalidade exata e pronto. Resumo de prova: se a pergunta falar em deslocar o ponteiro/offset do arquivo, a ideia e lseek. E um classico de Sistemas Operacionais e de sistemas POSIX, sem muita firula, mas muito cobrado.