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: 133
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