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
oustrncmp
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.