You can use strerror()
to get a human-readable string for the error number. This is the same string printed by perror()
but it’s useful if you’re formatting the error message for something other than standard error output.
For example:
#include <errno.h> #include <string.h> /* ... */ if(read(fd, buf, 1)==-1) { printf("Oh dear, something went wrong with read()! %s\n", strerror(errno)); }
Linux also supports the explicitly-threadsafe variant strerror_r()
.
Related Posts:
- Bind failed: Address already in use
- Why should we check WIFEXITED after wait in order to kill child processes in Linux system call?
- malloc(): memory corruption
- Where is the
header file on Linux? Why can’t I find ? - Where does linux store my syslog?
- How to use shared memory with Linux in C
- Why does ENOENT mean “No such file or directory”?
- Undefined reference to pthread_create in Linux
- what is the difference between uint16_t and unsigned short int incase of 64 bit processor?
- Openssl : error “self signed certificate in certificate chain”
- Bad File Descriptor with Linux Socket write() Bad File Descriptor C
- Write to .txt file?
- What is the LD_PRELOAD trick?
- Cannot assign requested address – possible causes?
- How to extract C source code from .so file?
- How to print pthread_t
- Cannot assign requested address – possible causes?
- connect Error: “No route to host”
- The difference between stdout and STDOUT_FILENO
- Does connect() block for TCP socket?
- Creating a new directory in C
- where does stdio.o live in linux machine?
- Linux equivalent of I_PUSH
- Display value found at given address gdb
- What can cause a “Resource temporarily unavailable” on sock send() command
- Efficient way to find task_struct by pid
- waitpid, wnohang, wuntraced. How do I use these
- How to initialize array to 0 in C?
- How to do scanf for single char in C
- Sign extend a nine-bit number in C
- Warning: assignment from incompatible pointer type
- Break statement not within loop or switch in C
- How to properly malloc for array of struct in C
- Cache Simulator in C
- C: error: expected ‘)’ before ‘;’ token
- Where is the C auto keyword used?
- valgrind – Address —- is 0 bytes after a block of size 8 alloc’d
- make: Nothing to be done for `all’
- Data argument not used by format strings in C
- execv vs execvp, why just one of them require the exact file’s path?
- difference between
and - expected expression before ‘{‘ token
- Setting std=c99 flag in GCC
- C Vector/ArrayList/LinkedList
- Convert char array to a int number in C
- Warning/error “function declaration isn’t a prototype”
- What is the difference between %f and %lf in C?
- Returning an array using C
- warning: initializer element is not computable at load time
- What is stdin in C language?
- How to prevent multiple definitions in C?
- How to pass 2D array (matrix) in a function in C?
- error: ‘for’ loop initial declarations are only allowed in C99 mode [duplicate]
- How can you print multiple variables inside a string using printf?
- c – warning: implicit declaration of function ‘printf’
- Flushing buffers in C
- What are 0x01 and 0x80 representative of in C bitwise operations?
- How to make parent wait for all child processes to finish?
- error: aggregate value used where an integer was expected
- Undefined Reference issues using Semaphores
- What is time(NULL) in C?
- Use of cudamalloc(). Why the double pointer?
- C dynamically growing array
- Implementing shell in C and need help handling input/output redirection
- How to compile makefile using MinGW?
- Mapping a numeric range onto another
- Why are hexadecimal numbers prefixed with 0x?
- Portable way to check if directory exists [Windows/Linux, C]
- OpenGL — GL_LINE_LOOP —
- too many arguments for format [-Wformat-extra-args]
- How to use EOF to run through a text file in C?
- Incorrect checksum for freed object on malloc
- Valgrind complains with “Invalid write of size 8”
- Read and write to binary files in C?
- Expression must be a pointer to a complete object type using simple pointer arithmetic
- How to copy a char array in C?
- Simple way to check if a string contains another string in C?
- What does “request for member ‘*******’ in something not a structure or union” mean?
- cast to pointer from integer of different size, pthread code
- Invalid type argument of unary ‘*’ (have ‘int’) Error in C
- Segmentation fault (core dumped) due to fgets – I think
- Why do I get “cast from pointer to integer of different size” error?
- C subscripted value is neither array nor pointer nor vector when assigning an array element value
- What does “request for member ‘*******’ in something not a structure or union” mean?
- Unknown ending signal when using debugger gdb
- Valgrind: invalid read of size 4 -> sigsegv, works fine without valgrind and in visual studio
- error: too few arguments to function `printDay’ (C language)
- How to convert integer to char in C?
- Is there a good Valgrind substitute for Windows?
- Difference between sizeof(char) and sizeof(char *)
- Where to find the complete definition of off_t type?
- struct has no member named
- Difference between “move” and “li” in MIPS assembly language
- printf not printing to screen
- Writing a simple shell in C using fork/execvp
- Initializing array of structures
- Still Reachable Leak detected by Valgrind
- How to empty a char array?
- Assembly x86 – “leave” Instruction
- What is the difference between array and enum in C ?