cblc/exercicios/14/README.org

1.9 KiB

Curso Básico da Linguagem C

Exercícios da aula 14: Abertura de arquivos para leitura

O arquivo /etc/passwd

Cada linha do arquivo /etc/passwd representa um usuário do sistema e tem o seguinte formato:

nome:senha:uid:gid:gecos:home:shell

O termo GECOS vem de General Electric Comprehensive Operating Supervisor, e era o nome de um antigo sistema operacional do início dos anos 1960. Como as primeiras versões do Unix precisavam interagir com o ambiente GECOS, o campo foi introduzido em /etc/passwd para receber informações de contato do usuário em um formato compatível (nome completo, sala, ramal, etc).

Exemplo:

blau:x:1000:1000:Blau Araujo:/home/blau:/bin/bash

Com base nisso…

1. Impressão do conteúdo do arquivo

Abra /etc/passwd para leitura e imprima todo seu conteúdo, linha por linha.

2. Número de usuários

Leia o arquivo e imprima a quantidade total de usuários no seu sistema.

3. Busca de usuários

Tendo o nome de um usuário como argumento (por exemplo, root), imprima apenas a linha de /etc/passwd correspondente.

Dica: utilize funções como strstr ou strncmp para encontrar strings nas linhas, mas cuidado com os falsos positivos!

4. Informações de usuários

Tendo um nome de usuário como argumento, imprima seus dados no formato:

Login         : ...
GECOS         : ...
Diretório home: ...
Shell padrão  : ...

Dica: a função strtok pode ser uma ótima opção para separar a linha em campos, mas não é a única opção.