所以我从一个文件描述符中读取,它包含一个原始字节格式的int变量。
所以我在做:

char buffer[sizeof(int)];
ssize_t sizeOfFile = read(sock_fd, buffer, sizeof(int));

int extractedInt = ???;

如何将缓冲区转换为整数?我在想记忆,但想知道是否有更好的方法。

最佳答案

你可以直接读取一个整数

int extractedInt;
ssize_t sizeOfFile = read(sock_fd, &extractedInt, sizeof(int));

read将读取int字节的大小,并将其存储到extractedInt中。
如果您的int实际上是要转换为int的文件中的字符串,则过程有点不同。
#define SIZE 20

char buffer[SIZE]; // ensure there is enough space for a string containing an integer
ssize_t sizeOfFile = read(sock_fd, buffer, SIZE);

int extractedInt = atoi(buffer);  // convert string to integer

关于c - 如何将缓冲区中存储的字节转换为变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47737550/

10-11 22:53