Sometime Today, Devdas Bhagat assembled some asciibets to say:

> /* 
>  * The OP should tell us why he/she is using read and write instead of
>  * fread and fwrite, or perhaps rename to move the file instead
>  */

irrelevant.  fread/fwrite won't work on file descriptors.  They require 
FILE pointers.  open/creat/socket return file descriptors.

> while (fd) {

and who sets fd to 0?

>       if (n < sizeof(buff)) { /* Short read, eof? */

this is a short read.  it does not mean eof.  eof is signalled by a 
return value of 0.  n < requested size just means that fewer bytes than 
requested were available at the time.

>               close_check = close(fd);        /* Close file */

don't close here.  close only if n == 0.  If n < 0, check for errno of 
EINTR or EAGAIN, and redo the read.

Philip

-- 
If you can't understand it, it is intuitively obvious.

-- 
http://mm.ilug-bom.org.in/mailman/listinfo/linuxers

Reply via email to