头都大了了 2021-12-11 14:31 采纳率: 85.7%
浏览 49
已结题

linux内核,输入输出代码问题

这个代码可以正常编译,但是在运行的时候会乱码。

#include <sys/types.h>
#include<fcntl.h>
#include<stdio.h>
#include<unistd.h>
#include<string.h>
 
int main() {
    int filedes;
    ssise_t nread;
    off_t newpos;
 
    char buffer[1024];
    char content[] = "Hello my friend!!\n";
    char content2[] = "I love you\n";
 
    filedes = open("data.txt", O_RDWR);
 
    nread = read(filedes, buffer, 1024);
    printf("%s\n", buffer);
 
    newpos = lseek(filedes, (off_t)3, SEEK_SET);
    if (newpos == -1) {
        printf("error");
}

write(filedes,content,strlen(content));// 这里代表什么意思?
// 如果这里改成write(filedes,content2,strlen(content2));的话,又是代表什么意思呢

newpos = lseek(filedes, (off_t)3, SEEK_SET);
nread = read(fildes, buffer, 1024);
printf("%s\n", buffer);

close(fildes);

return 0;
  • 写回答

2条回答 默认 最新

  • 会修电脑的打字员 2021-12-11 14:54
    关注
    write(filedes, (off_t)3, SEEK_SET);这里有错误, 这个函数的最后一个参数是写入的数据大小,不是 SEEK_SET,改下,第二个参数是数组类型,你在试下运行
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月19日
  • 已采纳回答 12月11日
  • 修改了问题 12月11日
  • 创建了问题 12月11日

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料