Для моего класса системного программирования мы много программируем на C и обязаны проверять ошибки большинства функций, поскольку в настоящее время мы учимся программировать с помощью pthreads.
ПричинаЯ говорю, что это не совсем домашняя работа, это то, что она намного превосходит ожидания этого класса.Простая проверка каждой функции в отдельности более чем удовлетворительная.Я просто чувствую, что это трудоемкий и грязный метод, и надеюсь на более точное решение.
Мне было интересно, кто-нибудь может показать мне, как написать функцию, которая принимает любую функцию C какпараметр, за которым следуют все обязательные параметры для этой функции, а также желаемое возвращаемое значение (в данном случае правильное) и выполняется следующее.
if(function_name(param1, param2, ...) != desired_return_value) {
fprintf(stderr, "program_name: function_name() failed\n");
perror("function_name(): ");
}
Возможно ли это?Это вряд ли требуется для нашего курса, но меня просто раздражает, что практически каждая функция, которую я пишу, должна иметь 4 строки кода для проверки на наличие ошибок.Это делает его чертовски трудным для чтения.
Даже некоторые другие предложения были бы хорошими.Я просто пытаюсь улучшить читаемость, поэтому, если это совершенно неправильное направление, было бы очень полезно какое-то правильное направление.
РЕДАКТИРОВАТЬ: В идеале это должно компилироваться по стандарту gnu99:
РЕДАКТИРОВАТЬ 2 : В ответ Джеймсу МакНеллису: ошибки в наших функциях нет (я считаю, что в этом случае), должны быть обработаны.Уведомление только должно быть предоставлено.Мы ничего не рассмотрели в отношении обработки ошибок, связанных с потоками / процессами (эта тема в двух словах).