
#include <stdlib.h>
int main(int argc, char* argv[])
{
char cmd[200]
if (argc>1)
{
sprintf(cmd,"write %s",argv[1])
system(cmd)
}
else fprintf(stderr,"ERROR!\nusage: write user [tty]\n")
return 0
}
可以直接把int的地址强制转为char*来写入。如int i = 1234
write(fd, (char*)&i, sizeof(int))
同样道理,read也类似:
read(fd, (char*)&i, sizeof(int))
好隐蔽的一个错误!! if ((fd=open(pathname, FLAGS, MODE)==-1)) 这句,括号的位置错误了应该是: if ( (fd=open(pathname, FLAGS, MODE))==-1)
原写法,导致fd值为0,成了标准输入(终端)了,所以,lseek就会一直报错!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)