Linux下的read()和write()的第二个参数不能是char*?

程序如下:(为什么把charbuf[256]改成char*buf之后,写入就为空了)#include<fcntl.h>#include<unistd.h>#include... 程序如下:(为什么把 char buf[256] 改成 char* buf 之后,写入就为空了)
#include<fcntl.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
int main(int argc, char** argv)
{
char buf[256];
int file_s,file_d,counter;
file_s = open(argv[1],O_RDONLY);
file_d = open(argv[2],O_RDWR | O_CREAT,S_IRUSR | S_IWUSR);
while((counter = read(file_s,buf,10)) > 0)
{
write(file_d,buf,counter);
}
close(file_s);
close(file_d);
return 0;
}
展开
 我来答
tablering
2014-04-15
知道答主
回答量:2
采纳率:0%
帮助的人:4.7万
展开全部
buf[256]代表一块内存区,可以直接存储字符串,而 *buf只是一个指针变量,不能存储字符串,必须给它分配一块内存才可以
百度网友8b81db7
2014-04-15 · TA获得超过132个赞
知道小有建树答主
回答量:184
采纳率:100%
帮助的人:131万
展开全部

可以原定义是

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式