c - 如何在 Linux 中的 C 程序中禁用中断

标签 c linux linux-kernel interrupt

我正在使用 A13 处理器的 Linux(A13-OLinuXino-MICRO) 上用 c 编写一个简单的代码。如果这很重要,我正在使用 gcc 编译器。假设我有一个简单的循环,它只是从 1 数到 100,我希望在这个循环中有尽可能少的中断。我认为我能做的最好的事情就是禁用中断(如果可能的话甚至是定时器中断)并在循环后启用它。我的程序中有多个地方需要强制执行此操作。任何人都可以帮助我提供一个简单的 C 代码来保护循环免受中断......我可以在我的平台上编译和运行的代码吗?

编辑:内核线程可能是一个答案。我怎样才能以内核特权运行某些东西?我看到人们谈论 disable_local_interrupt() 但我不知道如何使用它。

编辑:这是我要解决的实际问题。我需要在无中断环境中运行我的应用程序。

编辑:是的,我确信 Linux 是我需要使用的,我知道中断对操作系统很重要,这就是为什么我不想永远禁用它们。当我运行它时,我只想在操作系统上强制执行几分之一秒的无中断。另外,没有我需要解决的主要问题,这就是我需要解决的“问题”,所以不要再问我为什么要这样做了。

最佳答案

用户空间不能禁用或启用中断。

关于c - 如何在 Linux 中的 C 程序中禁用中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41859005/

相关文章:

linux - 在 linux 驱动程序中,为什么在函数中传递数据指针时 kfree 不起作用?

c - .config 文件中定义的预处理器宏在 c 文件中不可见

c++ - 为什么 "long int"与 "int"大小相同?这个修改器到底有没有用?

c - C 中的数组类型转换

regex - awk:显示匹配的正则表达式(多行)

linux - 没有内核线程的'ps'

c - OpenGL 旋转和缩放

c++ - 在函数 gcry_cipher_encrypt C++ 上使用 gcrypt 时出错

linux - CPU_ALLOC的声明在哪里?

linux - kvm 编译内核中缺少 channel