Linux中,用C语言实现write命令

Linux中,用C语言实现write命令,第1张

#include <stdio.h>

#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就会一直报错!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7215062.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-03
下一篇2023-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存