- 论坛徽章:
- 0
|
本帖最后由 BillStone 于 2013-02-26 14:06 编辑
main从标准输入获取3个字节,继而退出:- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
- extern int errno;
- int main(void)
- {
- char data[3];
- int n;
- again:
- while ( (n = read(STDIN_FILENO, data, 3)) < 0)
- {
- if (EINTR == errno)
- {
- puts("get a signal.");
- goto again;
- }
- break;
- }
- puts("");
- exit(0);
- }
复制代码 我的运行环境:Ubuntu 10.04LTS + gcc 4.4.3,运行效果如下:- rockstone@rockstone-desktop:~/trash$ ./a.out
- 123abc
- rockstone@rockstone-desktop:~/trash$ abc
复制代码 可以看到,当输入123abc、键入Ctrl+D后,123被read读取,而剩余的abc则在main执行完毕后打印到终端,这是为什么?从什么资料可以找到答案? |
|