当前位置:  技术问答>linux和unix

read函数的小问题

    来源: 互联网  发布时间:2016-12-21

    本文导语:  #include  #include  #include  int main() { char buf[7] = {''}; int n = 0; do  { n = read(STDIN_FILENO, buf, 6); //fputs(buf); printf("%sn", buf); //fflush(stdin); }while (6 == n); return 0; } 运行结果让我吃惊!!!!! [root@localhost work1]# ./1 1234 ...


#include 
#include 
#include 


int main()
{
char buf[7] = {''};
int n = 0;

do
 {
n = read(STDIN_FILENO, buf, 6);
//fputs(buf);
printf("%sn", buf);
//fflush(stdin);
}while (6 == n);

return 0;
}

运行结果让我吃惊!!!!!
[root@localhost work1]# ./1
1234 43545
1234 4
3545
4
[root@localhost work1]# ./1
123456123456
123456
123456

23456
[root@localhost work1]# 
为什么会有个尾巴??23456啊?最后应该只是一个换行啊?

|
read碰到文件结束符会结束读取,但是你每次输入的最后一个字符肯定是换行符,所以换行符肯定会被读入,读入换行符后就没什么好读了,但是你的数组里面本来就有数据,当然要输出了!
以第一个输入为例:输入1234 43545,第一次读入1234 4,没什么好说的,且n为6;
第二次,读入的不仅是3545还有换行符,而且第六个字符4还在数组中所以输出为3545n4,因为换行符后无输入,n为5,程序结束!

|
楼主,你拿调试工具逐行调试一下,主要是没处理回车的问题

|
打印过后buf没有清空。

    
 
 

您可能感兴趣的文章:

  • 关于tty函数的read函数的小问题
  • 请问 : read, 与recv 两个函数有什么区别啊?
  • CAT命令读取设备文件,驱动read函数被反复调用,为什么?
  • read函数读取文件时如何一行一行的读取,请指教!
  • 关于read()函数
  • 请教各位可以用read函数读取.wav音频文件数据吗
  • 函数read出错时,错误代码的含义?
  • 急了急了:串口read函数问题!
  • Linux下read函数默认到底是阻塞的还是非阻塞的?
  • 求教网络编程read函数的问题
  • read、write和close对应到C++库是什么函数
  • Linux编程:有关read()函数的问题
  • linux串口读取read函数始终返回值为1,没有返回读到的字符数
  • int read(int,char*, sszie_t)函数返回的各种值分别表示什么?
  • Linux下怎么用read或recv函数完全接收socket发来的数据?
  • 关于recvfrom和read函数的接收速率问题
  • 初学者小问:read(file,buf,size)函数在读取文件时,file会不会自动增加?
  • 怎么样以非阻塞的方式从管道中读取数据?因为我用read函数时,如果管道没有数据就会阻塞住???
  • 请教read()和write()函数的问题
  • RTC驱动测试函数read_time怎么写?
  • 系统启动问题(read block from filesystem resulted in short read!)在线等!!!
  • socket read返回问题
  • cshell脚本中read的问题
  • 关于epoll ET模式read的一些问题
  • read 和write问题!
  • 关于read()的问题
  • read 赋值问题
  • read 读取 非常奇怪 而且有难度的问题
  • shell编程的问题,关于read的
  • linux 多线程sys_read同步问题
  • 急问!!!!BufferReader.read中的off问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 read():读取字条符
  • 请教: read一个socket, read返回需要多长时间?
  • java命名空间javax.swing类progressmonitorinputstream的类成员方法: read定义及介绍
  • read一个socket, 发现read到的长度是0, 是否一定代表对方调用了close关闭了socket?
  • java命名空间java.sql接口connection的类成员方法: transaction_read_uncommitted定义及介绍
  • if( (n=Readline( sockfd,line,MAXLINE) )==0)为什么服务器接收到客户FIN时,Read返回的是0。,既然FIN被读出来了,为什么Read返回的是0
  • java命名空间java.io类objectinputstream的类成员方法: readfully定义及介绍
  • 非阻塞打开设备文件,如果1秒read不到数据,想让read退出如何做?
  • java命名空间java.io类linenumberreader的类成员方法: read定义及介绍
  • linux 下的read命令重定向
  • java命名空间java.io接口objectinput的类成员方法: read定义及介绍
  • 我的模块的READ没有被调用
  • java命名空间java.io类objectinputstream的类成员方法: read定义及介绍
  • 关于shell read命令
  • java命名空间java.nio.channels类filechannel.mapmode的类成员方法: read_write定义及介绍
  • 新手请教:while read中末尾的重定向表示什么意思?
  • java命名空间java.io类filterinputstream的类成员方法: read定义及介绍
  • 为什么客户端断开连接后,read的返回值是0?
  • java命名空间java.text类attributedcharacteriterator.attribute的类成员方法: reading定义及介绍
  • read/write 和 fread/fwrite 有什么区别
  • java命名空间java.nio.channels类filechannel.mapmode的类成员方法: read_only定义及介绍
  • Linux下怎么用read或recv函数完全接收socket发来的数据? iis7站长之家


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3