[cdev] dd
Grigoriy A. Sitkarev
sitkarev на komitex.ru
Пт Июн 4 00:14:36 MSK 2010
Замечания по коду. Это только основное.
1. Функция atof(3) ковертирует строку в число с плавающей точкой
одинарной точности. У вас там должна быть целочисленное значение,
поэтому надо бы пользоваться atoi(3). Что atof(3) что atoi(3) не имеют
удобных средств для обнаружения ошибки в строке с числом. Зато они есть
у strtof(3)/strtod(3) и strtol(3) и т.д.
2. Место в памяти для буферов вам надо выделять динамически через
malloc(2) к примеру. У вас сейчас работает ваш вариант. но это не очень
стандартная вещь и редко используется (только в GCC).
3. Крайне слабо продумана обработка ошибок. Когда вы пишете программу на
Си вы должны чётко представлять какие ошибки и где могут возникнуть, у
какой функции, по какой причине, и как вы её должны обрабатывать.
Например, сейчас у вас fopen(3) (стр. 124) не сможет открыть файл, то
программа "поломается". У некоторой части системных вызовов код возврата
не проверяется там где это бы следовало делать.
4. Т.к. вы используете везде низкоуровневый ввод/вывод, то вам и файл
надо было открывать через open(2) а не fopen(3). Потом вы везде пихаете
fileno(3), этого делать не надо. Хоть и работает. но всё же это лишнее.
5. Не забывайте что мы разделяем пробелами аргументы у функий.
func(a, b, c);
--
Г.А.
Федюк Сергей пишет:
> Григорий Александрович, так вы посмотрели на данный момент конечный вариант программы? Что нужно еще доделать?
> P.S. Зачет в зачетку вы поставите только когда мы сдадим утилиту полностью?
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> cdev mailing list
> cdev на wiki.syktsu.ru
> http://wiki.syktsu.ru/cgi-bin/mailman/listinfo/cdev
Подробная информация о списке рассылки cdev