如何在 C++ 中使用带有整数 fd 的读取系统调用

How to use read syscall with an integer fd in C++

我正在使用套接字。在使用 socket() 创建一个时,我们得到一个整数文件描述符。然后我想从这个 fd 中读取数据。

为此,我遵循了可运行的 C 代码 - 在以下行中使用 read() 系统调用:

read (sockfd /* int */, buff /* char* */, 50);

然而,编译出现错误“read was not declared in this scope; did you mean 'fread'?”。

在使用 g++ 将给定的功能 C 客户端代码简单地编译为 C++ 文件时,我得到了同样的错误。

此 C++ 程序中包含的内容是(按顺序):iostream、netdb.h、netinet/in.h、stdio.h、stdlib.h、string.h, sys/socket.h, sys/types.h

std 命名空间正在使用中。 我做错了什么?

你可能错过了#include <unistd.h> 但我也建议使用 recv,它在 sys/socket.h

中声明

如果您遇到困难,请始终尝试联机帮助页:man read.2