c - 如何在C语言中的另一个函数中使用一个函数中的一个变量

标签 c file-handling uefi

头文件

struct some_variable {
char *variable;
uint32_t infoe;
uint8_t *info0;
};

某个目录中的1.c

function1:
----------

static void filename(const char *variable, 


function2:
----------

int read_variable(some_variable *var)

    FILE *f = NULL;
    f = fopen(filename, "rb");
    .
    .
    .
    .
}

其他目录中的2.c

function3:
----------

int own_function()
{
    char buf[256];
    uint8_t cam[3];
    struct some_variable var;

    var.variable = "iop";

    if (strncmp(var.variable, "iop", 3) == 0) {
        read_variable(&var);
        f = fopen(filename,"r"); 

        while (fgets(buf, sizeof buf, f)) {     
            sscanf(b, "%hhX:%hhX:%hhX:"
                    &cam[0], &cam[1], &cam[2]);
            ....
    }
}
  • function1 和 function2 位于某个目录中的一个文件中,function3 位于我正在编写的另一个文件中。
  • 我在函数 3 中调用了函数 2。
  • 我想在 function3 中使用 function2 中的“文件名”。注意:我无法更改 function2'

最佳答案

你不能。

FILE句柄,fread_variable的局部变量。因此,read_variable 之外的任何内容都完全无法访问它。

您没有向 read_variable 显示完整的代码,但鉴于它将文件句柄打开到本地变量中,我希望它也会调用 fclose在它返回之前。

如果您不被允许修改 read_variable,您是否考虑过将 read_variable 的整个代码复制到您的 own_function 调用中并进行修改满足您的需求?

关于c - 如何在C语言中的另一个函数中使用一个函数中的一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54882296/

相关文章:

c# - 将大文本文件加载到字符串中

C程序: Write to and from binary files not working?

linux - UEFI 阻止安装 Linux

c - 侵入式链表的指针算法

c - 为什么我们不能使用静态变量来实现尾递归呢?

c - 使用 GIO 处理文件

c - 搭建EDK(UEFI开发环境)失败

backup - 捕获 AMI BIOS/ACPI 2.0 时 UEFI 卷无效

c++ - CFI 指令是什么意思? (还有一些问题)

c - C-整数数组在for循环中产生不同的值