在 c 中手动传递文件而不是标准输入 value_t read_sexpr(FILE *f)

Passing File manually instead of stdin value_t read_sexpr(FILE *f) in c

我正在使用从控制台获取输入的 c 文件

value_t read_sexpr(FILE *f) // This is a Function 
 read_sexpr(stdin) // Thats how it is calling from main 

我想传递字符串而不是从控制台获取输入。可以吗?

使用fmemopen()打开一个由字符串支持的FILE

#include <stdio.h>

const char mystring[] = "test";
FILE *testfile = fmemopen(mystring, sizeof mystring, "r");

请注意 fmemopen 不是标准的 C 函数。不过它是标准的 POSIX。

之后不要忘记关闭文件。阅读 manual page 了解更多详情。