Я просто изучал это сам и думаю, что другая функция могла бы лучше подходить для этой проблемы, perror.perror довольно прост, например, если вы используете malloc для некоторой памяти и вам требуется что-то вроде значимого сообщения об ошибке, которое strerror выдает в случае сбоя malloc:
char **str_array = (char**) malloc(SOME_CONSTANT * sizeof(char*));
if (str_array == NULL){
perror("malloc failed on str_array");
}
perror печатает введенную строку, добавляет пробел,точка с запятой, а затем печатает читаемый человеком текст ошибки.Похоже, что он также не имеет побочного эффекта, который делает strerror, если я неправильно интерпретирую man-страницу, потому что в ней нет раздела для ОШИБК: http://man7.org/linux/man-pages/man3/perror.3.html.
I 'Я также делаю последовательные вызовы, которые могут быть неудачными, и perror выглядит как меньшее количество строк кода и лучший синтаксис.Тем не менее, я новичок в C, поэтому, пожалуйста, измените или удалите, если эта информация неточна.