Você está na página 1de 4

ARA0363 – PROGRAMAÇÃO BÁSICA DE SOFTWARE EM C

Exercício Avaliativo AV2

Observações:
1. Exercício Avaliativo AV2 da disciplina ARA0363, valor de 5,0 pontos. A nota deste Exercício
Avaliativo é pré-requisito para obtenção da nota da AV2, que valerá 5,0 pontos, perfazendo
o total de 10,0 pontos da AV2.
2. As questões devem ser entregues via Sala de Aula Virtual da disciplina, até o dia
07/11/2022, somente em formato pdf e devidamente identificada. A organização das
questões também contará ponto, portanto, identifique todas a questões respondidas. Basta
enviar somente as respostas das questões, porém, todas devem estar identificadas.
Questões sem identificação serão desconsideradas.
3. As questões de implementação somente serão consideradas corretas se a execução do
código ocorrer sem quaisquer erros de execução / compilação, salvo exceções as
questões que exigem leitura de arquivos.
4. Códigos iguais ao da internet ou igual ao de outro aluno(a) serão penalizados e terão a nota
diminuída pela metade, impreterivelmente. O aluno(a) poderá ser solicitado(a) a explicar o
código e as estruturas e ponteiros utilizados.
5. O Exercício Avaliativo AV2 não será aceito após a data de entrega, portanto, procure se
adiantar nas atividades. Problemas técnicos (conexão, internet etc.) são de
responsabilidade exclusiva do aluno (a).
6. A Avaliação AV2 e AVD serão no dia 09/11/2022, em sala de aula.

Bons estudos
Prof. Simone Gama
ARA0363 – PROGRAMAÇÃO BÁSICA DE SOFTWARE EM C
Exercício Avaliativo AV2

Parte I. Questões Discursivas (Total: 2,0 pontos)


1. Seja o seguinte código em Linguagem C abaixo, explique linha a linha do código e responda
as perguntas: (1,0 ponto)

a) Qual a função da biblioteca API <sys/socket.h> ?


Resposta:____________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
b) Qual o significado da instrução apresentada na linha 16?
Resposta:____________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
c) Descreva a função e os parâmetros apresentados na linha 8.
Resposta:____________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________

2. (CRÉDITO DIGITAL) Descreva o que são as funções básicas do sketch do Arduíno


setup() e loop(). (1,0 ponto)
Resposta:_______________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
ARA0363 – PROGRAMAÇÃO BÁSICA DE SOFTWARE EM C
Exercício Avaliativo AV2

Parte II. Questões Objetivas


3. Marque a opção correta acerca das definições de portas de comunicação sockets: (0,8
pontos)
a) O cabeçalho sys/sockets.h contém funções e macros para definição, criação e
configuração de sockets, além de configurar a comunicação do tipo publicação e
assinatura.
b) A instrução shutdown(sock, 1) significa que o socket recebido no 1º parâmetro deve
não enviar mais dados.
c) As constante AF_INET, usada na abertura de socket, significa que o socket possui o
tipo de comunicação via UDP.
d) O parâmetro SOCK_STREAM da abertura de socket significa que o socket é de
conexão via TCP.
e) Se o retorno de uma tentativa de abertura de um socket for negativo, significa que o
socket foi conectado corretamente.

4. (CRÉDITO DIGITAL) Marque V (Verdadeiro) e F (Falso) nas seguintes afirmações: (0,7


pontos)
a) (AAA) O Recommended Standard (RS) significa padrão recomendado. A versão
mais comum do padrão é RS232C (às vezes conhecida como EIA232); e a mais
recente é o RS232E. RS232 é o nome também atribuído ao protocolo de
comunicação serial utilizado, que envolve o envio de dados bit a bit no tempo, em
uma linha de comunicação.
b) (AAA) A constante OPEN_EXISTING serve para abrir uma porta serial existente.
c) (AAA) A função GetCommState() recupera as configurações de controle atuais da
porta serial.
d) (AAA) A função pinMode(2, INPUT) indica que é possível acessar um pino de saída
de número 2 em um Arduíno.
e) (AAA) O Arduino pode ler a entrada de 0V a 5V com suas entradas analógicas
ligadas aos ADCs.
ARA0363 – PROGRAMAÇÃO BÁSICA DE SOFTWARE EM C
Exercício Avaliativo AV2

Parte III. Questão de Implementação (1,5 pontos)


5. O pid (process identification, ou identificador de processos), como o nome já diz,
é um identificador para processos executados pela função fork(), e cada processo
tem um valor diferente de pid, é como se fosse o RG, ou seja, a identificação de
cada processo.
Porém, ao armazenar esse retorno da função fork numa variável de nome 'pid' do
tipo 'pid_t', vemos que esse número de pid tem um comportamento especial:
• dentro do processo filho, o pid tem valor 0
• dentro do processo pai, o pid tem o valor do processo filho
• a fork() retorna um valor negativo, caso tenha ocorrido algum erro.
A função getpid() retorna o pid do processo em execução - assim dá pra ver o real
pid do pai e o do filho). O seguinte código mostra um exemplo de execução do pid
de identificação do método fork():

Seja o código acima, observe os itens demarcados com 1, 2 e 3. Refaça o programa acima,
substituindo as linhas demarcadas por funções, que irão “printar” os valores de getpid do pai e do
filho da função fork.

Você também pode gostar