Função Strerror 2 C

Função Strerror 2 C
Erros do sistema ocorrem. Assim que seu programa tentar chegar ao sistema operacional, algo dá errado. Se isso ocorrer, a função retorna -1 e seu código deve confiar em nosso confiável errno para descobrir o que deu errado e talvez emitir uma mensagem de erro instrutiva. A biblioteca C chama Char *strerror (int errnum), que produz uma referência a uma string composta pela mensagem de erro, e pesquisa uma matriz interna para o número de erro errnum. Dependendo do compilador e da plataforma usada para desenvolvimento, o Strerror gera strings de erro e converte uma sequência de mensagens de erro no número de erro no errnum.

Os valores errno com erros adequados são necessários. Uma string de mensagem de erro específica para localidade não é produzida por esta função. A biblioteca contém variáveis ​​e funções destinadas a simplificar para o seu programa fornecer falha detalhada da mensagem de erro por parte de uma chamada da biblioteca no formato usual. Você pode obter a mensagem de erro padrão para um determinado código de erro usando os métodos STRERROR, e você pode obter rapidamente o nome do programa que cometeu o erro usando o nome da variável Invocação. Vamos investigar a função Strerror da linguagem C em mais detalhes.

Sintaxe da função estérror na linguagem C

Usamos a seguinte sintaxe da função strerror () na linguagem C. A string que explica o erro é obtida usando esta sintaxe Strerror.

char *strerror (int errnum);

Temos apenas um argumento que a função Strerror leva. O argumento é errnum: um erro específico para o qual você gostaria de receber a mensagem de erro. Se o erro de tempo de execução for desconhecido, a função strerror () fornece uma mensagem de erro desconhecida. Caso contrário, ele fornece a string de descrição de erro relevante.

O valor do ERRNO permanece inalterado se a operação for bem -sucedida; Caso contrário, é alterado para um valor diferente de zero. Além disso, a função Strerror gera dois erros, Einval e Erange. Se o valor do errnum for um número de erro inválido, o erro de einval será lançado. Quando o erro Descrição String não pôde ser armazenado no armazenamento fornecido, o erro gerado é Erange.

Exemplo 1

Aqui, demonstramos a utilização da função Strerror. Utilizaremos isso em nosso programa C para gerar o erro na execução. Vamos discutir a implementação para esta função estérror. Somos obrigados a incluir alguns arquivos de cabeçalho da biblioteca de C, necessários para esta implementação de código.

Primeiro, inserimos o stdio.H Arquivo de cabeçalho. Devemos incluir o arquivo de cabeçalho stdio.h para adicionar os métodos relacionados à entrada/saída em nosso programa. Então, a corda.h é adicionado após o stdio.H Arquivo de cabeçalho. O cabeçalho da biblioteca padrão C é chamado de string.h. No entanto, o nome é um pouco enganoso porque compreende declarações de macro, constantes e declarações de métodos e tipos, eles são usados ​​para lidar com várias funções de manuseio de memória, além de gerenciar strings. Como esse é o código da função Strerror para acessar esta função, precisamos importar um erro.arquivo h para esta função.

A biblioteca padrão da linguagem de programação C contém o arquivo de cabeçalho Errno.h. Ele define macros com o símbolo ERRNO para relatar e recuperar circunstâncias de erro (abreviação para o "número de erro"). Certas funções da biblioteca que detectam erros salvam um valor de modo que o número de erro esteja na variável errno. Os únicos valores que a loja de funções da biblioteca são maiores que zero.

Independentemente de eles perceberem erros, qualquer função da biblioteca pode alterar o valor que é salvo antes de retornar. A maioria das funções relata erros retornando um valor específico, geralmente nulo para métodos que retornam ponteiros e -1 para métodos que retornam números inteiros. O chamador de algumas funções deve definir errno como 0 e examiná -lo depois para verificar se um erro foi encontrado.

#incluir
#incluir
#incluir
int main ()
Arquivo *fp;
fp = fopen ("arquivo.txt "," r ");
if (fp == null)
printf ("erro: %s \ n", strerror (errno));

retornar (0);

Depois de incluir o arquivo de cabeçalho, temos a principal declaração de função. Na seção de função principal, criamos o ponteiro de arquivo "FP" com o objeto de arquivo. O arquivo é atribuído um nome de arquivo com o modo de leitura dentro da função FOPEN se a condição for aplicada à variável do ponteiro FP. Se o FP for encontrado nulo, a instrução PRIMF será executada, que tem a função Strerror. A função Strerror toma o errno como um argumento e retorna isso em um formulário de string.

Como estamos tentando abrir um arquivo que não está presente, vamos compilar e executar o programa mencionado acima, o que resultará no seguinte resultado:

Exemplo 2

Como o código anterior gera a sequência de erros quando isso ocorre. Também podemos definir o erro da string por nós mesmos. Temos que definir a sequência de erros primeiro com o errno.

int main (int argc, char *argv [])

Arquivo *fout;
int last_error = 0;
if ((fout = fopen (argv [1], "w")) == null)
last_error = errno;
errno = 0;

if (last_error)
fprintf (stderr, "FOPEN: não pôde abrir %s para escrever: %s",
argv [1], strerror (last_error));
fputs ("Continue… \ n", stderr);

return exit_success;

Inserimos vários arquivos de cabeçalho para este exemplo de código e cada um tem sua funcionalidade e propósito. Então, estabelecemos a função principal. O FOUT é criado como a variável de ponteiro e o último_error também é declarado como a variável, que é atribuída com o valor 0. As expressões aninhadas se forem utilizadas aqui. Se a condição last_errrror for combinada com o Errorno, podemos especificar o último_error na função Strerror.

O erro da string definido pelo usuário é produzido quando o código anterior é executado, como mostrado abaixo:

Conclusão

O principal objetivo do guia é educá -lo sobre o Strherror em C Linguagem. Utilizando o erro.H Arquivo de cabeçalho no código, podemos acessar facilmente a função Strerror. A sintaxe é muito fácil de entender. Aqui, discutimos dois exemplos que explicarão o uso do Strerror na linguagem C. Também podemos criar ou definir o erro no erro da string que queremos exibir.