为什么读取系统调用在程序中途停止运行?

问题描述

我正在做一个作业,其中涉及使用讲师在C语言中描述为“文件和系统I / O调用”的方法来创建文件并在其中操作字符。

具体地说,我正在使用打开,创建,读取,写入,查找,关闭和取消链接。

在没有透露太多信息和违反学术诚信的情况下,从本质上讲,作业只是创建文件,在文件之间复制字符,更改字符等。

在程序的某一点之前,所有这一切都进行得很顺利,之后只读...将无法工作。我正在访问哪个文件,或在它之前放置了其他任何调用都没有关系,例如,在尝试读取之前,我尝试关闭并重新打开一个文件,然后在读取之前进行写入(工作正常,将字符正确放置在文件的目标位置)等。

我已经检查了所有先前命令的返回,除了读操作之外没有其他错误,这给了我errorno9。查询了一下,似乎是指文件描述符不正确,但这并不表示错误。对我来说很有意义,因为我可以对其他任何命令使用相同的fid。使用ls -l,我确认我具有读写权限(如果有帮助,则没有组和公共权限)。

我完全不知道从何处进行故障排除,我们将不胜感激任何帮助。这是有问题的代码段:

readStatus = lseek(WWWfid,500,0);
if (readStatus<0) {
    printf("error with lseek"); 
    return 0;
}
/*printf("Read status: %i\n",readStatus);/*DEBUG*/
writeStatus = write(WWWfid,"wtf",3);
if (writeStatus<0) {
    printf("error with write");
    return 0;
}
        
readStatus = read(WWWfid,buffer,26);
int errorNum = errno;
/*buffer[27] = '\0';*/
if (readStatus<0) {
    printf("error with read before loop,error %i\n",errorNum);
    return 0;
}

我可能会在不引起我的uni愤怒的情况下包含更多内容,但我不希望这样做-考虑到所有进行中的代码似乎都能正常运行,这似乎也无关紧要。 感谢您的阅读,如果您有任何见解,请告诉我

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...