在C语言中,使用FILE*
通常是用于文件操作,而不是内存缓冲区。但是,您可以使用fmemopen()
函数将内存缓冲区与FILE*
对象关联起来。以下是一个简单的示例:
#include<stdio.h>
#include<string.h>
int main() {
char buffer[100];
char input[] = "Hello, world!";
size_t input_len = strlen(input);
// 将内存缓冲区与FILE*对象关联
FILE *stream = fmemopen(buffer, sizeof(buffer), "w+");
// 将字符串写入内存缓冲区
fwrite(input, sizeof(char), input_len, stream);
// 将文件指针重新定位到开始
rewind(stream);
// 读取内存缓冲区中的内容
char output[100];
fread(output, sizeof(char), input_len, stream);
output[input_len] = '\0';
// 关闭内存缓冲区
fclose(stream);
printf("Output: %s\n", output);
return 0;
}
在这个示例中,我们首先创建了一个内存缓冲区buffer
,然后使用fmemopen()
函数将其与FILE*
对象stream
关联起来。接下来,我们使用fwrite()
函数将字符串input
写入内存缓冲区。然后,我们使用rewind()
函数将文件指针重新定位到开始,接着使用fread()
函数读取内存缓冲区中的内容。最后,我们使用fclose()
函数关闭内存缓冲区。
请注意,fmemopen()
函数是C99标准中引入的,因此您需要使用支持C99标准的编译器来编译此代码。
领取专属 10元无门槛券
手把手带您无忧上云