當前位置:首頁 » 操作系統 » linuxc11

linuxc11

發布時間: 2022-07-29 12:27:04

linux內核遷移到c11

內核開發者ArndBergmann發出了一個新的補丁,允許Linux內核在指定C11的GNU方言時默認使用「-std=gnu11」。
事件的前因後果為,Linux內核社區日前曾討論了是否要為內核採用現代C語言標准。Linus在討論中提出了從C89提升到C99的想法;並表示,內核代碼一直停留在C89的原因之一是編譯器gcc的舊版本會出現奇怪的問題,導致初始化程序被破壞。但現在內核要求的GCC最低版本已經提高到了v5.1,那些bug可能已經不再相關。
最後事實證明,以當前內核的最低版本編譯器要求和當前代碼的條件,他們實際上可以開始使用C11構建內核。ArndBergmann提議直接升級到C11甚至C2x。雖然他不確定C11是否會帶來任何對內核有用的新內容,但如果升級到C17或C2x,會破壞對gcc-5/6/7的支持;因此升級到C11更容易實現,而且跨越太大內核社區未必接受。
Linus對該想法表示了贊成。在Bergmann確認此舉可行後,Linus宣布將在下一個內核版本v5.18中嘗試使用C11標准。

⑵ Linux 中如何運用awk截取文件名中部分內容

經分析,文件名中以 ICIMSIDIFF 開頭,awk 中 可以考慮以它為分界符
試一下如下代碼:
ls -ltr *20100502* | awk -F "ICIMSIDIFF" '{print $2}'|cut -b 1-2

⑶ linux C語言的頭文件對應Windows下的頭文件是哪些

  1. linux和windows平台下,能夠對應的頭文件就是符合C11標準的頭文件。其他的頭文件不僅和平台有關系,還和平台下的編譯環境有關,很難畫上等號的。

  2. C語言符合標準的頭文件.

    #include <assert.h> //設定插入點
    #include <ctype.h> //字元處理
    #include <errno.h> //定義錯誤碼
    #include <float.h> //浮點數處理
    #include <fstream.h> //文件輸入/輸出
    #include <iomanip.h> //參數化輸入/輸出
    #include <iostream.h> //數據流輸入/輸出
    #include <limits.h> //定義各種數據類型最值常量
    #include <locale.h> //定義本地化函數
    #include <math.h> //定義數學函數
    #include <stdio.h> //定義輸入/輸出函數
    #include <stdlib.h> //定義雜項函數及內存分配函數
    #include <string.h> //字元串處理
    #include <strstrea.h> //基於數組的輸入/輸出
    #include <time.h> //定義關於時間的函數
    #include <wchar.h> //寬字元處理及輸入/輸出
    #include <wctype.h> //寬字元分類

  3. linux常用頭文件如下:
    POSIX標準定義的頭文件
    <dirent.h> 目錄項
    <fcntl.h> 文件控制
    <fnmatch.h> 文件名匹配類型
    <glob.h> 路徑名模式匹配類型
    <grp.h> 組文件
    <netdb.h> 網路資料庫操作
    <pwd.h> 口令文件
    <regex.h> 正則表達式
    <tar.h> TAR歸檔值
    <termios.h> 終端I/O
    <unistd.h> 符號常量
    <utime.h> 文件時間
    <wordexp.h> 字元擴展類型
    -------------------------
    <arpa/inet.h> INTERNET定義
    <net/if.h> 套接字本地介面
    <netinet/in.h> INTERNET地址族
    <netinet/tcp.h> 傳輸控制協議定義
    -------------------------
    <sys/mman.h> 內存管理聲明
    <sys/select.h> Select函數
    <sys/socket.h> 套接字借口
    <sys/stat.h> 文件狀態
    <sys/times.h> 進程時間
    <sys/types.h> 基本系統數據類型
    <sys/un.h> UNIX域套接字定義
    <sys/utsname.h> 系統名
    <sys/wait.h> 進程式控制制
    ------------------------------
    POSIX定義的XSI擴展頭文件
    <cpio.h> cpio歸檔值
    <dlfcn.h> 動態鏈接
    <fmtmsg.h> 消息顯示結構
    <ftw.h> 文件樹漫遊
    <iconv.h> 代碼集轉換使用程序
    <langinfo.h> 語言信息常量
    <libgen.h> 模式匹配函數定義
    <monetary.h> 貨幣類型
    <ndbm.h> 資料庫操作
    <nl_types.h> 消息類別
    <poll.h> 輪詢函數
    <search.h> 搜索表
    <strings.h> 字元串操作
    <syslog.h> 系統出錯日誌記錄
    <ucontext.h> 用戶上下文
    <ulimit.h> 用戶限制
    <utmpx.h> 用戶帳戶資料庫
    -----------------------------
    <sys/ipc.h> IPC(命名管道)
    <sys/msg.h> 消息隊列
    <sys/resource.h>資源操作
    <sys/sem.h> 信號量
    <sys/shm.h> 共享存儲
    <sys/statvfs.h> 文件系統信息
    <sys/time.h> 時間類型
    <sys/timeb.h> 附加的日期和時間定義
    <sys/uio.h> 矢量I/O操作
    ------------------------------
    POSIX定義的可選頭文件
    <aio.h> 非同步I/O
    <mqueue.h> 消息隊列
    <pthread.h> 線程
    <sched.h> 執行調度
    <semaphore.h> 信號量
    <spawn.h> 實時spawn介面
    <stropts.h> XSI STREAMS介面
    <trace.h> 事件跟蹤

⑷ windows與linux 頭文件對照

1.linux和windows平台下,能夠對應的頭文件就是符合C11標準的頭文件。其他的頭文件不僅和平台有關系,還和平台下的編譯環境有關,很難畫上等號的。
2.C語言符合標準的頭文件
#include <assert.h> //設定插入點
#include <ctype.h> //字元處理
#include <errno.h> //定義錯誤碼
#include <float.h> //浮點數處理
#include <fstream.h> //文件輸入/輸出
#include <iomanip.h> //參數化輸入/輸出
#include <iostream.h> //數據流輸入/輸出
#include <limits.h> //定義各種數據類型最值常量
#include <locale.h> //定義本地化函數
#include <math.h> //定義數學函數
#include <stdio.h> //定義輸入/輸出函數
#include <stdlib.h> //定義雜項函數及內存分配函數
#include <string.h> //字元串處理
#include <strstrea.h> //基於數組的輸入/輸出
#include <time.h> //定義關於時間的函數
#include <wchar.h> //寬字元處理及輸入/輸出
#include <wctype.h> //寬字元分類
3.linux常用頭文件如下:
POSIX標準定義的頭文件
<dirent.h> 目錄項
<fcntl.h> 文件控制
<fnmatch.h> 文件名匹配類型
<glob.h> 路徑名模式匹配類型
<grp.h> 組文件
<netdb.h> 網路資料庫操作
<pwd.h> 口令文件
<regex.h> 正則表達式
<tar.h> TAR歸檔值
<termios.h> 終端I/O
<unistd.h> 符號常量
<utime.h> 文件時間
<wordexp.h> 字元擴展類型
-------------------------
<arpa/inet.h> INTERNET定義
<net/if.h> 套接字本地介面
<netinet/in.h> INTERNET地址族
<netinet/tcp.h> 傳輸控制協議定義
-------------------------
<sys/mman.h> 內存管理聲明
<sys/select.h> Select函數
<sys/socket.h> 套接字借口
<sys/stat.h> 文件狀態
<sys/times.h> 進程時間
<sys/types.h> 基本系統數據類型
<sys/un.h> UNIX域套接字定義
<sys/utsname.h> 系統名
<sys/wait.h> 進程式控制制
------------------------------
POSIX定義的XSI擴展頭文件
<cpio.h> cpio歸檔值
<dlfcn.h> 動態鏈接
<fmtmsg.h> 消息顯示結構
<ftw.h> 文件樹漫遊
<iconv.h> 代碼集轉換使用程序
<langinfo.h> 語言信息常量
<libgen.h> 模式匹配函數定義
<monetary.h> 貨幣類型
<ndbm.h> 資料庫操作
<nl_types.h> 消息類別
<poll.h> 輪詢函數
<search.h> 搜索表
<strings.h> 字元串操作
<syslog.h> 系統出錯日誌記錄
<ucontext.h> 用戶上下文
<ulimit.h> 用戶限制
<utmpx.h> 用戶帳戶資料庫
-----------------------------
<sys/ipc.h> IPC(命名管道)
<sys/msg.h> 消息隊列
<sys/resource.h>資源操作
<sys/sem.h> 信號量
<sys/shm.h> 共享存儲
<sys/statvfs.h> 文件系統信息
<sys/time.h> 時間類型
<sys/timeb.h> 附加的日期和時間定義
<sys/uio.h> 矢量I/O操作
------------------------------
POSIX定義的可選頭文件
<aio.h> 非同步I/O
<mqueue.h> 消息隊列
<pthread.h> 線程
<sched.h> 執行調度
<semaphore.h> 信號量
<spawn.h> 實時spawn介面
<stropts.h> XSI STREAMS介面
<trace.h> 事件跟蹤

⑸ 為什麼linux下C11沒法使用memcpy_s

簡單的說,那就是沒有唄;memcpy_s這個本身就是windows的庫,而不是標准庫,更不是你所說的C11的庫;這個應該是windows所謂的更安全的庫;

⑹ linux下如何將一個文件的內容按行 和 「TAB」分隔讀取

說實話,我沒太理解你所提的問題。
這是文件名,還是文件內容?
你要讀取的行是順序讀取,還是按照所給行數讀取。
然後輸出成的
c11 c12 c13 c14 c15Tab
c21 c22 c23 c24 c25Tab

是文本格式?還是創建的文件名?我是在沒讀懂你所表達的意思。

⑺ 怎樣在Linux環境編譯支持C11

linux 安裝的時候一般自動安裝gcc 的工具 沒有的話 在你yum 源配置真確的話 用yum install gcc 安裝gcc工具 VI 一個腳本 編輯好後 用gcc 文件名 -o 輸出的文件名 進行c或c++的編譯 然後就可以運行腳本了

⑻ Linux操作系統中默認安裝的C語言編譯系統是

Linux操作系統中默認安裝的C語言編譯系統是GCC(GNU Compiler Collection),是Linux下最常用的C語言編譯器,是GNU項目中符合ANSI,C標準的編譯系統,能夠編譯用C、Object C等語言編寫的程序。

同時它可以通過不同的前端模塊來支持各種語言,如Java、Fortran、Pascal、Mola,3和Ada等。

C語言的標准

1.1 K,RC

1973年,Dennis M Ritchie設計和實現了C語言,從那以後使用者逐漸增加。

1978年,Kernighan 和 Ritchie 合著了《The C Programming Language》,這本書定義的C語言被稱為 K,RC 。

1.2 標准 C

隨著C語言使用日益廣泛,出現了許多新問題,人們迫切希望對C語言進行標准化。

第一個標准:C89

1983年,ANSI成立了一個委員會X3J11,對C語言進行標准化。

1989年,ANSI 批准了第一個C語言標准 X3,159-1989,並於1990年公布,被稱為 ANSIC、C89 或 C90。

1990年,這個標准又被批准為ISO標准:ISO,IEC 9899:1990 。

ANSIC標准被ISO採納,並且ISO發布的修訂版也被ANSI採納,因此ANSI標准和ISO標准實際上沒有技術區別。這些名稱的含義是相同的:ANSI C、ISO C、標准C。

1994年和1996年,ISO發布了兩個技術更正,更正了1990ISOC標准中的錯誤。

第二個標准:C94

1995年,ISO發布了1990ISOC標準的一個補充,稱為AMD1。擴充後的標准被稱為C94或C95。

第三個標准:C99

1999年,ISO發布了一個新版本的ISOC標准:ISO,IEC9899:1999,稱為C99。

2001年、2004年和2007年,ISO發布了三個技術更正,更正了1999ISOC標准中的錯誤。

第四個標准:C11

2011年,ISO發布了一個新版本的ISOC標准:ISO,IEC9899:2011,稱為C11。C11 是 C語言的最新標准。

1.3 GNUC

1984年,Richard Stallman 發起了GNU計劃,它的目標是開發一個完整且自由的Unix-like操作系統(GNU系統)。

GNU系統是一個完整的操作系統,包括操作系統內核和各種工具軟體。各種GNU系統的變種(例如Redhat、Ubuntu等)已經被廣泛使用,它們使用的操作系統內核都是Linux。雖然這些系統經常被稱為Linux,但准確地說,它們是GNU/Linux系統。

GNU在編寫Linux時擴展了標准C,稱為GNUC。

GNU C的擴展詳見:Extensions to the C Language Family

GNU C也稱為Linux C,一般用於Linux上的開發,而標准C可以跨平台。

GNU C使用的編譯器是GCC。

熱點內容
腳本設計圖 發布:2025-01-18 18:06:17 瀏覽:600
內部存儲空間不足總是跳出來 發布:2025-01-18 17:56:22 瀏覽:950
安卓光遇更新後魔法商店去哪裡了 發布:2025-01-18 17:55:47 瀏覽:132
安卓手機怎麼變成蘋果設備 發布:2025-01-18 17:46:06 瀏覽:915
linux服務端 發布:2025-01-18 17:36:55 瀏覽:250
表白代碼的編譯器是什麼 發布:2025-01-18 17:36:53 瀏覽:999
錄像機日誌伺服器地址怎麼填 發布:2025-01-18 17:28:17 瀏覽:110
安卓手機如何調整圖標樣式 發布:2025-01-18 17:23:53 瀏覽:549
計算機配置單怎麼算 發布:2025-01-18 17:23:52 瀏覽:81
超級終端如何清空配置 發布:2025-01-18 17:18:44 瀏覽:598