Logo Passei Direto
Buscar
Um desenvolvedor está implementando um sistema que deve registrar eventos em um arquivo de log. Para assegurar que cada mensagem de logo seja adicionada de forma segura e correta, ele escolhe usar uma função que escreva cada string diretamente no arquivo de log aberto. Qual função ele deve utilizar para garantir que cada string seja adicionada de forma segura ao final do arquivo de log, mesmo que várias instâncias do aplicativo tentem escrever ao mesmo tempo? a) fprintf(logFile, "%s", message); b) fputs(message, logFile); c) fwrite(message, sizeof(char), strlen(message), logFile); d) fputc('message', logFile); e) fprintf(logFile, "%s\n", message);
User badge image
Elvis Borba

mês passado

Respostas

User badge image

Ed Verified user icon

mês passado

Vamos analisar as alternativas considerando a necessidade de garantir que cada mensagem seja adicionada de forma segura e correta ao final do arquivo, mesmo com múltiplas instâncias escrevendo simultaneamente. - a) fprintf(logFile, "%s", message); Escreve a string no arquivo, mas não adiciona automaticamente uma nova linha e não garante segurança em escrita concorrente. - b) fputs(message, logFile); Escreve a string no arquivo, sem adicionar nova linha, e também não garante segurança em escrita concorrente. - c) fwrite(message, sizeof(char), strlen(message), logFile); Escreve bytes diretamente, mas não adiciona nova linha e não garante segurança concorrente. - d) fputc('message', logFile); Incorreto, pois fputc escreve um único caractere, e 'message' não é um caractere válido. - e) fprintf(logFile, "%s\n", message); Escreve a string seguida de uma nova linha, o que é importante para separar mensagens no log, mas ainda não garante segurança em escrita concorrente. Nenhuma das funções por si só garante segurança em escrita concorrente (como bloqueio de arquivo), mas para garantir que cada mensagem seja adicionada corretamente e separada, a melhor opção é a que escreve a mensagem com uma nova linha: alternativa e). Portanto, a resposta correta é: e) fprintf(logFile, "%s\n", message);

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina