Chinaunix
标题:
recvfrom函数的问题
[打印本页]
作者:
tony124cft
时间:
2008-03-31 17:19
标题:
recvfrom函数的问题
下面几行代码中我对整形变量n不明白,recvfrom返回的应该是BUFFERMAX这个数值,或者是比他小的一个值(里面应该是有内容的)。克为什么后面一行要给他赋值成0那?
char buffer[BUFFERMAX];
n = recvfrom(sockfd, buffer, BUFFERMAX, 0, NULL, NULL);
buffer[n] = 0;
这三行代码摘自unix网络编程套接口API中8.6节
作者:
MMMIX
时间:
2008-03-31 19:24
保证把 buffer 里面的内容当作字符串处理时不会越界.
作者:
Kissfox
时间:
2008-03-31 23:14
写成这样是不是就明白了?buffer[n] = '\0';
哈哈
作者:
tony124cft
时间:
2008-04-01 12:08
字符串的结尾应该是\0我知道,应该加上,但是读出来的内容存放在数组中buffer[n]的位置应该是有内容的呀?再赋值不就乱了吗?
作者:
wantjutju
时间:
2008-04-01 12:58
标题:
回复 #4 tony124cft 的帖子
做个小例子TEST一下 就知道了
作者:
MMMIX
时间:
2008-04-01 19:03
原帖由
tony124cft
于 2008-4-1 12:08 发表
字符串的结尾应该是\0我知道,应该加上,但是读出来的内容存放在数组中buffer[n]的位置应该是有内容的呀?再赋值不就乱了吗?
C 中数组索引是从 0 开始的。
作者:
@sky
时间:
2008-04-02 21:56
最后一个字符在N-1的位置
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2