openwayne 于 2010-02-05 23:09:24发表:
C语言。。。
openwayne 于 2010-02-05 23:09:09发表:
{:2_92:}
hstking 于 2010-02-05 21:21:17发表:
我是菜鸟,正在学在。呵呵…… 有空交流下。
hyqhyq_3 于 2010-02-05 17:03:06发表:
hstking,你C语言很强啊!
hyqhyq_3 于 2010-02-05 17:02:22发表:
哦,是write写入的时候太长了,出现那种东西应该是偶然情况
hstking 于 2010-02-05 11:43:15发表:
估计时编译时,寄存器出现的问题。猜的啊。实际是怎么回事,我也不清楚。 程序本身有问题,wirte写入时给的长度太长了。是故意找错的吧?
hstking 于 2010-02-05 11:38:06发表:
为了更清楚,我把程序稍微改了一下。 #include #include #include int main(int argc ,char** argv) { printf("X"); write(STDOUT_FILENO,"A",5); printf("Y\n"); // write(STDOUT_FILENO,"B",1); exit(EXIT_SUCCESS); } 首先是打印了一个X,此时指针在"X"的后面。然后用write函数在"X"之前打印一个"A"。在这一步执行完毕后,结果是AYX,此时的指针在"AY"与"X"之间(用gdb调试得出的结果)。最后调用printf函数打印"Y"时,指针又到了"X"的后面。执行完毕后,由于STDOUT_FILENO没有关闭,所以,指针又回到了"AY"之后。
read 于 2010-02-05 10:14:52发表:
{:2_91:}
openwayne 于 2010-02-05 23:09:24发表:
C语言。。。
openwayne 于 2010-02-05 23:09:09发表:
{:2_92:}
hstking 于 2010-02-05 21:21:17发表:
我是菜鸟,正在学在。呵呵……
有空交流下。
hyqhyq_3 于 2010-02-05 17:03:06发表:
hstking,你C语言很强啊!
hyqhyq_3 于 2010-02-05 17:02:22发表:
哦,是write写入的时候太长了,出现那种东西应该是偶然情况
hstking 于 2010-02-05 11:43:15发表:
估计时编译时,寄存器出现的问题。猜的啊。实际是怎么回事,我也不清楚。
程序本身有问题,wirte写入时给的长度太长了。是故意找错的吧?
hstking 于 2010-02-05 11:38:06发表:
为了更清楚,我把程序稍微改了一下。
#include
#include
#include
int main(int argc ,char** argv)
{
printf("X");
write(STDOUT_FILENO,"A",5);
printf("Y\n");
// write(STDOUT_FILENO,"B",1);
exit(EXIT_SUCCESS);
}
首先是打印了一个X,此时指针在"X"的后面。然后用write函数在"X"之前打印一个"A"。在这一步执行完毕后,结果是AYX,此时的指针在"AY"与"X"之间(用gdb调试得出的结果)。最后调用printf函数打印"Y"时,指针又到了"X"的后面。执行完毕后,由于STDOUT_FILENO没有关闭,所以,指针又回到了"AY"之后。
read 于 2010-02-05 10:14:52发表:
{:2_91:}