Я пишу небольшую общую библиотеку C с довольно простым набором задач.Как должна библиотека C оповестить пользователя о плохом вводе, а также о других проблемах с интро-библиотекой.
Причина, по которой я пишу, заключается в том, что это часть процесса собеседования. Ожидается, что люди, пытающиеся выполнить это упражнение, будут младшими/интро-разработчиками.
Я довольно новичок в C и выполнил упражнение удобно, в указанной среде, но я никогда раньше не строил библиотеку. Поскольку мои методы будут вызваны из другой программы, как я должен работать с неправильным вводом пользователя?
Мне позволено задавать вопросы и я просил об этом явно говорить, но получил ответ, что кандидат может решить, как бороться с ошибками.
Я прочитал некоторые вещи об использовании errno, некоторые хорошие, некоторые плохие. Стандартно ли сообщать об ошибках с помощью этого макроса?
Я начинаю думать о вещах, таких как переносимость, но часть задания - использовать определенную версию Linux и использовать компилятор gcc. Я думаю, что до тех пор, пока я сделаю разумную попытку сделать свое решение портативным, со мной все будет в порядке.
Есть ли другие вещи, которые новый блог пытается написать в библиотеке?
Использование 'errno' имеет проблемы; это означает, что вы не можете сообщать о ошибках, которые еще не являются стандартными системными ошибками. Часто их достаточно, но если вы компилируете регулярные выражения, например, ошибки, доступные из '', в большинстве случаев не подходят для возможных ошибок регулярных выражений - сообщение «EINVAL» за все, что не так, не очень полезно. Также обратите внимание, что никакая стандартная функция библиотеки ни в стандартном C, ни в стандартном POSIX никогда не устанавливает «errno» в ноль. Вы должны быть осторожны, если вы сделаете это в своем коде: 'int old_errno = errno; errno = 0; …ваш код…; if (errno == 0) errno = old_errno; 'ОК. –
C не поддерживает _methods_, только _functions_ – Olaf
Джонатан Леффлер - это все, что я не должен делать. Можете ли вы сказать мне разумный подход к обработке пользовательского ввода? Давайте используем пример библиотеки, принимающей только заглавные буквы. Пользователь дает строчную букву или буквы. Что такое стандартный метод борьбы с плохим вводом? – AspiringCodeMonkey