为什么write 函数返回 -1,

运行环境是ubuntu10.04#defineDEVICE"/dev/ttySAC3"typedefunsignedcharBYTE;BYTE*buf,write_buf... 运行环境是ubuntu10.04

#define DEVICE "/dev/ttySAC3"
typedef unsigned char BYTE;
BYTE *buf,write_buf[] ={0xF5,0x23,0x00,0x00,0x00,0x00,0x23,0xF5};
... ...

int GPRS_write(int fd, char *write_buf)
{
int ret;
if((ret=write(fd, write_buf,8)) == -1);// strlen(write_buf))) == -1)
{
printf("write %s error\n",DEVICE);
exit(1);
}
printf("write buf is %x\n",write_buf[1]);
return ret;
}

... ...
展开
 我来答
Nadirvishun
推荐于2016-10-16 · TA获得超过485个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:97.1万
展开全部
>0,表示写入了多少字节
=0,没有写入字节
=-1,出错了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhyntc
2012-03-21 · TA获得超过475个赞
知道小有建树答主
回答量:369
采纳率:100%
帮助的人:352万
展开全部
结束了就返回-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ygk2003
2015-10-02 · 知道合伙人教育行家
ygk2003
知道合伙人教育行家
采纳数:4779 获赞数:139719
2007年毕业于兰州大学管理学院行政管理专业,学士学位。工会工作5年从业经历;档案工作7年从业经历。

向TA提问 私信TA
展开全部
一、>0,表示写入了多少字节;
=0,没有写入字节;
=-1,出错了。
2、write函数所在的头文件为 <unistd.h>
write有两种用法。一种是:
ssize_twrite(int handle, void *buf, int nbyte);
handle 是文件描述符;
buf是指定的缓冲区,即指针,指向一段内存单元;
nbyte是要写入文件指定的字节数;返回值:写入文档的字节数(成功);-1(出错)
write函数把buf中nbyte写入文件描述符handle所指的文档,成功时返回写的字节数,错误时返回-1.
另一种是:write(const char* str,int n)
str是字符指针或字符数组,用来存放一个字符串。n是int型数,它用来表示输出显示字符串中字符的个数。
write("string",strlen("string");表示输出字符串常量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式