c - 一次性执行函数

标签 c linux linux-kernel linux-device-driver

从两个不同的文件调用一个函数来加载一些数据,在某些情况下,它是从一个文件加载的,而在某些情况下,它是从另一个文件加载的。但在极端情况下,它会从两个文件中调用,这是应该避免的。

我可以采用全局变量或使用函数来确保数据加载仅发生一次。

寻找更优雅的解决方案。

Linux 是否提供了一些 API 来实现这一点?

谢谢

最佳答案

如果您谈论的是多线程,那么您需要在静态变量周围使用某种互斥体来表示该函数是否已经运行。

如果你只有一个线程,那么你不需要互斥锁。

关于c - 一次性执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14514035/

相关文章:

linux - Firefox 不加载虚拟主机网站而 chrome 加载虚拟主机网站

c - 在 C 中传递和返回二维数组

c - 使用 fgetc 读取文件意外停止

c - 在 C 中的 pthread_join 之后出现段错误(核心已转储)

c - Linux 内核 flush_write_buffers() 如何在 x86 上工作?

linux-kernel - 启动 Linux 内核所需的所有必要参数

c - IIO 设备缓冲区始终为空

c++ - C++ 是建立在 C 之上的吗?

linux - Arch Linux 上的 Intellij Idea 14 打开灰屏

c++ - 十六进制值到 wchar_t 字符 (UTF-8) 的转换