Dear Mike Dunn, > Thanks again Marek. A question below... > > > On 04/14/2013 10:38 AM, Marek Vasut wrote: > > > [...] > > >> + > >> + if (argc != 3) { > >> + printf("usage: %s <image file> <mtd dev node>\n", argv[0]); > >> + exit(-1); > > > > Use proper errno and "return" as you're returning from main() anyway. > > Agreed regarding 'return'. But should I be concerned with setting or > preserving errno before all 'return -1' lines? Is it normal practice for > a common utility to set errno? errno will have to be saved in many > places, since perror() itself can change it. This will add many more > lines of code.
Ooops! errno.h, sorry for the confusion :-( > [...] > > >> + > >> + blockbuf = malloc(RELIABLE_BLOCKSIZE); > > > > Do you not want to use some calloc() here to make sure the "blockbuf" is > > zeroed? > > Not necessary here; the buffer is always filled or the utility exits with > error. But will change to calloc() anyway. If you're sure it's filled, then it's no problem. > [...] > > >> + > >> + /* read data for one block from file */ > >> + while (len != 0 && (read_ret = read(datafd, buf, len)) != 0) { > > > > Uh, this really might be a candidate for IOCCC, split this please ... > > Well, OK, but... I normally don't embed calls in tests, but I do it here > because the read is performed at the start of each loop iteration, and I > thought this made it clearer and more concise. Basically it means "loop > while there's still more data to write, and read() does not return EOF". > > Actually, read() should never return EOF, because earlier I check the file > length, so if I'm going to do the sanity check anyway, maybe it should be > separate. I'd say you can loop and break; out if needed, no ? while (cond.) { if (x) break; if (y) break; do_useful_stuff here; } Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot