loic@design.axis.fr (Loic Dachary) (07/05/89)
In GNU Emacs 18.54.24 of Wed Jul 5 1989 on dsgn42 (usg-unix-v)
Here is a small c program :
main()
{
int a = 0;
((char *)(&a))[0] = '\200';
((char *)(&a))[1] = '\200';
write(1, &a, sizeof(int));
}
Compile it and run it in a shell buffer. You normally get the following
output :
\200^@^@
Note that the first \200 is missing.
If you run the following program :
main()
{
int a = 0;
write(1, "ab", 2);
((char *)(&a))[0] = '\200';
((char *)(&a))[1] = '\200';
write(1, &a, sizeof(int));
}
You get : ab\200\200^@^@ which is perfectly normal.
I can't find where this behaviour is documented, is there someone
on the net who can explain this ?
Thanx in advance,
Loic