On Mon, 14 Mar 2005, Evgeniy wrote:

Here is a simple program.

#include <stdio.h>
#include <errno.h>
main(){
 int err;
 err=read(0,NULL,6);
 printf("%d %d\n",err,errno);
}

I think that it should be an error : Null pointer assignment, like in windows.
But in practise it is not so.

It is an error. It will wait <forever> until you enter the [Enter] key (it's reading from STDIN_FILENO). Then it will return -1 which means there was an error, the error code in errno is 14 (EFAULT) or "bad address".

You can configure user-mode code to "seg-fault" upon receiving
such an error. It can print a nasty message and leave a worthless
core file in your directory.

Cheers,
Dick Johnson
Penguin : Linux version 2.6.11 on an i686 machine (5537.79 BogoMips).
 Notice : All mail here is now cached for review by Dictator Bush.
                 98.36% of all statistics are fiction.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to