Selecione A Alternativa Que Não É Uma Operação De Arquivo - Erro de arquivo não encontrado no Windows [Verificar e recuperar ...
Erro de arquivo não encontrado no Windows [Verificar e recuperar ...

Operações de Arquivo em C: Como Identificar a Alternativa Errada

Essa questão aparece com frequência em provas de programação e concursos técnicos. O objetivo é reconhecer quais funções da linguagem C realmente interagem com arquivos no sistema e quais parecem ser operações de arquivo mas não são. A confusão acontece principalmente porque algumas funções de entrada e saída têm nomes similares.

selecione a alternativa que não é uma operação de arquivo

Vamos direto ao ponto. As operações de arquivo clássicas em C trabalham com o tipo FILE* e incluem funções como fopen, fclose, fread, fwrite, fprintf, fscanf, fgetc, fputc, feof e remove. Qualquer alternativa que não opere com esse ponteiro ou não tenha relação direta com manipulação de arquivos no disco é a resposta correta para essa pergunta. Um erro muito comum é marcar printf como operação de arquivo. O printf escreve no stdout, não em um arquivo. Ele não recebe um ponteiro FILE. A função correspondente para escrever em arquivo seria fprintf, que sim recebe o handle do arquivo como primeiro argumento. A diferença é pequena na escrita mas fundamental na interpretação.

Já vi candidatos errarem essa questão achando que scanf era operação de arquivo. O scanf lê do stdin, assim como o fscanf lê de um arquivo. A lógica é a mesma do printf. Funções que começam com f antes do nome normalmente indicam operação com arquivo stream, enquanto a versão sem o f opera nos streams padrão. Outra pegadinha frequente envolve malloc ou free. Essas funções operam com memória dinâmica, não com arquivos. Elas aparecem em listas de alternativas propositalmente porque o candidato pode associar "gerenciar algo" a "operar arquivo". Não é o caso. Elas pertencem à família de alocação de memória.

Também costuma cair como distrator o gets ou puts. São funções de string que leem e escrevem em stdin/stdout respectivamente. Não têm vínculo com manipulação de arquivos. Ogets até foi removido do padrão C11 por questões de segurança, o que mostra que não era uma função para se confiar em nenhum contexto. Minha recomendação prática é memorizar a lista de funções que usam FILE* e fazer uma lista mental oposta. Quando estiver resolvendo a questão, elimine primeiro as que claramente operam com streams de arquivo. O que sobrar precisa ser analisado individualmente. Em quase todos os casos que já corrigi em provas, a alternativa incorreta era printf, scanf, malloc ou uma função de manipulação de strings como strlen.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Um detalhe que poucos percebem: rename e remove são operações de arquivo mesmo sem receberem FILE*. Elas operam diretamente sobre o nome do arquivo no sistema de arquivos. Isso as diferencia de funções puramente de memória ou string. Se você está estudando para uma prova, recomendo treinar com questões que misturam funções das bibliotecas stdio.h, stdlib.h e string.h juntas. A dificuldade não está em reconhecer fopen ou fclose — qualquer um consegue isso. A dificuldade está em não ser levado por funções como sprintf, que parece operação de arquivo mas na verdade formata strings em memória.

Resumo das Principais Operações de Arquivo em C

Operações que SÃO de arquivo: fopen, fclose, fread, fwrite, fprintf, fscanf, fgetc, fputc, feof, fgetpos, fsetpos, ftell, rewind, remove, rename, fflush.

Operações que NÃO SÃO de arquivo (distratores comuns): printf, scanf, puts, gets, sprintf, sscanf, malloc, free, strlen, strcpy, strcmp, atoi, atof.

O padrão é sempre o mesmo. A questão apresenta cinco alternativas e quatro delas envolvem FILE* ou manipulação direta de arquivos. A quinta é a que opera em memória, strings ou streams padrão sem handle de arquivo. Identificar qual é essa quinta alternativa resolve a questão em poucos segundos quando você conhece a divisão entre as bibliotecas.