Read() 坚持尝试读取文件

菲利普·诺布雷加

我有一个接收服务器状态的检查点文件。此状态表示通过我的网络传递的序列化命令。

我正在尝试读取文件,但它卡在 read while 循环中。

我的阅读功能:

struct message_t *pmanager_readop(int fd){
    if (fd < 0) return NULL;

    // Variables
    char *buffer = NULL;
    int result, msg_size;
    struct message_t *msg;

    // Check if file has data
    lseek (fd, 0, SEEK_END);
    int size_ckp = lseek(fd, 0, SEEK_CUR);

    if (size_ckp <= 0)
        return NULL;

    // Read message size
    result = read_all(fd, (char *) &msg_size, 4);
    if (result < 0) {
        return NULL;
    }
    msg_size = ntohl(msg_size);
    // ............

我的 read_all() 函数:

int read_all(int sock, char *buf, int len){
    int bufsize = len;
    while(len > 0){
        int res = read(sock,buf,len);

        if(res < 0){
            if (errno == EINTR) continue;
            return res;
        }
        buf += res;
        len -= res;
    }
    return bufsize;
}

我使用相同的函数从我的服务器/客户端连接中读取数据,使用相同的序列化和格式,但使用套接字描述符,它工作得很好。

阿尔克

您应该处理read()返回的情况0,告诉您另一方在从套接字描述符读取时关闭连接,或者EOF在从文件描述符读取时遇到连接

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

io.read('* all')尝试读取文件时返回nil

尝试读取文件时,实际文件具有正确的文本,.read()没有显示任何内容:

打开/尝试读取文件

尝试读取文本文件

尝试读取时找不到文件

尝试读取文件并同时遍历

尝试使用read()系统调用读取文件时程序卡住

w +在尝试读取文件内容时不起作用

尝试读取文件时出现奇怪的 NoSuchFileException

尝试读取属性文件Spring时获取NULL

Python3 Argparse尝试读取文件并计算字母

python pandas:尝试读取txt文件,但显示为NaN

尝试读取压缩文件时提示

尝试读取Excel文件时出现非法状态异常

Errno13,尝试读取文件时权限被拒绝

关于我尝试读取 .FIT 文件时的异常

尝试读取 csv 文件信息,并将其打印如下

Azure Databricks Spark XML库-尝试读取xml文件

尝试读取docx文件时出现UnicodeDecodeError

尝试读取文件中的信息(C编程)

Python尝试读取json文件并打印特定信息

尝试读取文件时文件名上出现SyntaxError?

尝试读取与 python 文件位于同一目录中的文件但收到 FileNotFoundError

尝试读取文件并在异常回退到备用文件的情况下的 Pythonic 方法

PHP脚本在Powerhell写入文件时尝试读取文件的问题

我在尝试读取本地JSON文件的python文件中收到MissingSchema错误

我尝试读取包含文件的数据文件夹,运行代码后显示异常

尝试读取oplog,但结果为空

调用类时尝试读取属性