所以我从一个文件描述符中读取,它包含一个原始字节格式的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/