|
|
发表于 2006-4-18 13:38:40
|
显示全部楼层
Post by samwang
char *w_buf;
...
write(pipe_fd[1],w_buf,4)
或者write(pipe_fd[1],"abc",4)
write的两种写法都不报错,也就是说w_buf应该是一个字符串变量
如果这样,定义的时候岂不是应该这样写:char w_buf
如果定义写成char *w_buf的话,那么*w_buf指的是一个字符串变量,w_buf应该是字符串变量的地址吧?
我的意思是,如果定义的时候写char *w_buf的话,write语名应该这样写才对:
write(pipe_fd[1],*w_buf,4)
再说了,write原型是:
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
第二个参数是一个变量,而非地址。
但是这样程序编译时报错;
pipe_write.c:33: 警告:传递参数 2 (属于 ‘write’)时将整数赋给指针,未作类型转换
晕,一派胡言! |
|