免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: luoweiqiao
打印 上一主题 下一主题

[函数] 求助!编程时OPEN函数的问题! [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
1 [报告]
发表于 2004-05-09 17:42 |显示全部楼层

求助!编程时OPEN函数的问题!

read 完了是不是有必要把回车符去掉?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2004-05-10 16:46 |显示全部楼层

求助!编程时OPEN函数的问题!

原帖由 "luoweiqiao" 发表:
要加的话应该是加到字符串实际长度加+1的位置吧!
'\n',占用数组空间吗?

要加的话,应该是
filename[strlen(filename)-1] = 0x00;
才对。

你试试,问题应该出在这里了。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2004-05-10 16:56 |显示全部楼层

求助!编程时OPEN函数的问题!

  1. [mochou@WebAgent mochou]$ cat t1.c
  2. # include <stdio.h>;
  3. # include <string.h>;

  4. int main( void )
  5. {
  6.     int fd;
  7.     char filename[80];

  8.     memset( filename, 0x00, sizeof(filename) );
  9.     write(1,"filename:",9);
  10.     read(0,filename,sizeof(filename));

  11.     fprintf( stderr, "filename's len: [%d]\n", strlen(filename) );
  12.     fprintf( stderr, "last char: [%d]\n", filename[strlen(filename)-1] );

  13.     return 1;
  14. }
  15. [mochou@WebAgent mochou]$ cc -o t1 t1.c
  16. [mochou@WebAgent mochou]$ ./t1
  17. filename:abc
  18. filename's len: [4]
  19. last char: [10]
  20. [mochou@WebAgent mochou]$
复制代码

楼主你看看,我只输入了 abc 三个字母,但是 strlen 的结果是 4,
说明多了一个字符,
多出来的最后一个字符是 ASCII 码的 10,也就是换行符。

所以,我想应该是这个原因引起的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP