檢測Linux系統是否支援某系統呼叫

2021-09-21 04:14:16 字數 1092 閱讀 4958

隨核心版本的變化,會增加一些新的系統呼叫,但如果glibc沒有跟上,則不能直接呼叫,這個時候可以自己包裝一下。如果想知道核心是否支援某系統呼叫,先得知道它的系統呼叫id號,下面**即是用來檢查是否支援epoll_create1: /

/ 檔名: x.cpp

// 編譯: g+

+-g -o x x.cpp

#include errno.h>

#include stdio.h>

#include stdint.h>

#include stdlib.h>

#include string

.h>

#include unistd.h>

#ifndef __nr_epoll_create1

# if defined(__x86_64__)

# define __nr_epoll_create1 291

# elif defined(__i386__)

# define __nr_epoll_create1 329

# elif defined(__arm__)

# define __nr_epoll_create1 (uv_syscall_base + 357)

# endif

#endif /

* __nr_epoll_create1 *//

/ 2.6.27核心才支援epoll_create1

// glibc2.9開始提供epoll_create1

static inline int epoll_create1(

int flags)

int main()/

/ 走到這裡,表示支援該系統呼叫

printf(

"epoll_create1 supported\n");

return 0;}

/usr/include/bits/syscall.h

/usr/include/asm/unistd.h

/usr/include/asm/unistd_32.h

/usr/include/asm/unistd_64.h

/usr/include/asm/unistd_x32.h

檢測是否支援position fixed

不喜歡瀏覽器嗅探,模仿ie6的ua的瀏覽器太多了 使用如下結構 outer inner 如果瀏覽器支援fixed,由於fixed是相對於document定位的,因此無論body樣式如何,top始終是100px 如果瀏覽器不支援fixed,被解釋為static,則inner和top值無效,計算出來的i...

javascript,檢測物件中是否存在某個屬性

檢測物件中屬性的存在與否可以通過幾種方法來判斷。1.使用in關鍵字。該方法可以判斷物件的自有屬性和繼承來的屬性是否存在。var o x in o true,自有屬性存在 y in o false tostring in o true,是乙個繼承屬性 2.使用物件的hasownproperty 方法。...

javascript,檢測物件中是否存在某個屬性

檢測物件中屬性的存在與否可以通過幾種方法來判斷。1.使用in關鍵字。該方法可以判斷物件的自有屬性和繼承來的屬性是否存在。var o x in o true,自有屬性存在 y in o false tostring in o true,是乙個繼承屬性 2.使用物件的hasownproperty 方法。...