mirror of
https://gitlab.com/blau_araujo/cblc.git
synced 2025-05-09 18:16:37 -03:00
exercícios da aula 14
This commit is contained in:
parent
c4735f936c
commit
a11d1c9c75
1 changed files with 69 additions and 0 deletions
69
exercicios/14/README.org
Normal file
69
exercicios/14/README.org
Normal file
|
@ -0,0 +1,69 @@
|
|||
#+title: Curso Básico da Linguagem C
|
||||
#+subtitle: Exercícios
|
||||
#+author: Blau Araujo
|
||||
#+startup: show2levels
|
||||
#+options: toc:3
|
||||
|
||||
* Exercícios da aula 14: Abertura de arquivos para leitura
|
||||
|
||||
- [[../../aulas/14-rfiles/README.org][Anotações da aula]]
|
||||
- [[https://www.youtube.com/watch?v=uh3UdYyzXRM][Vídeo]]
|
||||
|
||||
** O arquivo =/etc/passwd=
|
||||
|
||||
Cada linha do arquivo =/etc/passwd= representa um usuário do sistema e tem o
|
||||
seguinte formato:
|
||||
|
||||
#+begin_example
|
||||
nome:senha:uid:gid:gecos:home:shell
|
||||
#+end_example
|
||||
|
||||
#+begin_quote
|
||||
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, na AT&T, 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).
|
||||
#+end_quote
|
||||
|
||||
Exemplo:
|
||||
|
||||
#+begin_example
|
||||
blau:x:1000:1000:Blau Araujo:/home/blau:/bin/bash
|
||||
#+end_example
|
||||
|
||||
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.
|
||||
|
||||
#+begin_quote
|
||||
Dica: utilize funções como =strstr= ou =strncmp= para encontrar strings nas linhas,
|
||||
mas cuidado com os /falsos positivos/!
|
||||
#+end_quote
|
||||
|
||||
*** 4. Informações de usuários
|
||||
|
||||
Tendo um nome de usuário como argumento, imprima seus dados no formato:
|
||||
|
||||
#+begin_example
|
||||
Login : ...
|
||||
GECOS : ...
|
||||
Diretório home: ...
|
||||
Shell padrão : ...
|
||||
#+end_example
|
||||
|
||||
#+begin_quote
|
||||
Dica: a função =strtok= pode ser uma ótima opção para separar a linha em
|
||||
campos, mas não é a única opção.
|
||||
#+end_quote
|
Loading…
Add table
Reference in a new issue