Understanding behaviour of read() and write()

Posted by neo730 on Stack Overflow See other posts from Stack Overflow or by neo730
Published on 2010-06-04T06:36:02Z Indexed on 2010/06/04 6:39 UTC
Read the original article Hit count: 132

Filed under:
|

hi i am a student and just start learning low level c programming.i tried to understand read() and write() methods with this program.

#include <unistd.h>
#include <stdlib.h>
main()
{
    char *st;
    st=calloc(sizeof(char),2);//allocate memory for 2 char
    read(0,st,2);
    write(1,st,2);
}

i was expecting that it would give segmentation fault when i would try to input more than 2 input characters.but when i execute program and enter " asdf " after giving " as " as output it executes "df" command.

i want to know why it doesn't give segmentation fault when we assign more than 2 char to a string of size 2.and why is it executing rest(after 2 char)of input as command instead of giving it as output only?

also reading man page of read() i found read() should give EFAULT error,but it doesn't.

I am using linux.

© Stack Overflow or respective owner

Related posts about c

    Related posts about linux