- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Gcc 和 printf
说 timer_t
是指针(在我的 linux
上)。但是这个指针放置的是NULL
一个有效的计时器 ID?
此外,它是特定于平台的东西,例如。 G。它是 linux
上的指针, int on macOs
,……其他在 BSD
.
最佳答案
你说的是用户空间还是内核空间?即使在一个平台上,它也会有所作为。实际上,这归结为函数的实现,哪些应该被认为是不透明的。
函数的实现使用 timer_t
可以使用整数作为数据结构数组的偏移量,或者动态分配后备定时器数据结构。
计时器函数的不透明性意味着 NULL 可能在某些系统中有效,但在其他系统中无效。
如果您查看 sys/types.h
的单一 Unix 规范,你会看到它提到 timer_t
,并说“所有类型都被定义为适当长度的算术类型”,但没有指定类型中究竟存储了什么(因为指针实际上只是一个整数,恰好是其中其他地方的地址内存)。
Linux 内核头文件 ( int
):
include/linux/types.h:typedef __kernel_timer_t timer_t;
include/uapi/asm-generic/posix_types.h:typedef int __kernel_timer_t;
void*
指针):
time/bits/types/timer_t.h:typedef __timer_t timer_t;
bits/types.h:__STD_TYPE __TIMER_T_TYPE __timer_t;
sysdeps/unix/sysv/linux/x86/bits/typesizes.h:#define __TIMER_T_TYPE void *
sysdeps/unix/sysv/linux/sparc/bits/typesizes.h:#define __TIMER_T_TYPE void *
sysdeps/unix/sysv/linux/s390/bits/typesizes.h:#define __TIMER_T_TYPE void *
sysdeps/unix/sysv/linux/generic/bits/typesizes.h:#define __TIMER_T_TYPE void *
sysdeps/unix/sysv/linux/alpha/bits/typesizes.h:#define __TIMER_T_TYPE void *
sysdeps/nacl/bits/typesizes.h:#define __TIMER_T_TYPE void *
sysdeps/mach/hurd/bits/typesizes.h:#define __TIMER_T_TYPE __S32_TYPE
bits/typesizes.h:#define __TIMER_T_TYPE void *
int
):
#ifndef _TIMER_T
#define _TIMER_T
typedef int timer_t; /* timer identifier type */ <typedef:timer_t>
#endif /* ifndef _TIMER_T */
关于types - timer_t 的基础是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43033709/
Gcc 和 printf说 timer_t是指针(在我的 linux 上)。但是这个指针放置的是NULL一个有效的计时器 ID? 此外,它是特定于平台的东西,例如。 G。它是 linux 上的指针,
我目前正在使用 ARM GCC 编译器编译我的代码。我的代码有一个 RTOS,有一个 types.h 文件,该文件将 clock_t 类型定义为 unsigned long。由于 ARM GCC 编译
在下面的代码中,当在Windows 7的cygwin上运行时, #include #ifdef _WINDOWS HANDLE m_timer; bool
我是一名优秀的程序员,十分优秀!