[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