linux011
Ⅰ linux c 的 open(文件路徑,O_WRONLY | O_CREAT) 裡面的與運算為什麼可以實現打不開就創建
open 函數可以打開或創建一個文件。
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
返回值:成功返回新分配的文件描述符,出錯返回-1並設置errno
在Man Page中open 函數有兩種形式,一種帶兩個參數,一種帶三個參數,其實在C代碼
中open 函數是這樣聲明的:
int open(const char *pathname, int flags, ...);
最後的可變參數可以是0個或1個,由flags 參數中的標志位決定,見下面的詳細說明。
pathname 參數是要打開或創建的文件名,和fopen 一樣,pathname 既可以是相對路徑也可以是絕
對路徑。flags 參數有一系列常數值可供選擇,可以同時選擇多個常數用按位或運算符連接起
來,所以這些常數的宏定義都以O_開頭,表示or。
必選項:以下三個常數中必須指定一個,且僅允許指定一個。
O_RDONLY 只讀打開
O_WRONLY 只寫打開
O_RDWR 可讀可寫打開
以下可選項可以同時指定0個或多個,和必選項按位或起來作為flags 參數。可選項有很多,這
里只介紹一部分,其它選項可參考open(2)的Man Page:
O_APPEND 表示追加。如果文件已有內容,這次打開文件所寫的數據附加到文件的末尾而不
覆蓋原來的內容。
O_CREAT 若此文件不存在則創建它。使用此選項時需要提供第三個參數mode ,表示該文件
的訪問許可權。
O_EXCL 如果同時指定了O_CREAT,並且文件已存在,則出錯返回。
O_TRUNC 如果文件已存在,並且以只寫或可讀可寫方式打開,則將其長度截斷
(Truncate)為0位元組。
O_NONBLOCK 對於設備文件,以O_NONBLOCK 方式打開可以做非阻塞I/O(Nonblock I/O).
Ⅱ 嵌入式學習書籍有哪些
以下是華清遠見·星創客嵌入式精英訓練營提供的學習嵌入式必看的100本書:
001《大話數據結構》
002《鳥哥的 linux 私房菜》
003《瘋狂 android 講義》
004《第一行代碼》
005《linux 內核設計與實現》
006《驅動設計開發》
007《linux 內核解密》
008《unix 環境高級編程》
009《linux 內核設計與實現》
010《essential C++》
011《嵌入式 linux》
012《linux 設備驅動》
013《c 語言深度解剖》
014《linux 下的 c編程》
015《C Primer Plus(第五版)》
016《ARM 體系結構與編程(第二版)》
017《lINUX 設備驅動開發詳解(第三版)》
018《android 開發藝術探討》
019《c++plus》
020《Unix 環境高級編程》
021《與大數據同行——學習和教育的未來》
022《用戶體驗的要素》
023《編程與藝術》
024《ARM 嵌入式體系結構與介面技術》
025《cortex-m0 介面編程》
026《C 語言程序設計:現代方法》
027《C++ Primer》
028《數據結構》(嚴蔚敏)
029《演算法導論》
030《Linux 設備驅動開發》
031《代碼大全》
032《深入理解計算機系統》
033《UNIX 環境高級編程》
034《計算機安全原理》
035《UNIX 網路編程》
036《HeadFirst 設計模式》
037《linux 驅動》(宋保華)
038《C++ primer4》
039《qt5 精彩實例》
040《ldd3》
041《C++高級編程》
042《C語言教程》
043《實戰 linux 編程精髓》
044《ARM 教程》
045《JAVA 編程思想》
046《HTML+CSS 網頁設計與布局從入門到精通》
047《C 語言深度解剖》
048《深度實踐嵌入式 Linux 系統移植》
049《unix 高級編程》
050《c 嵌入式一站式教學》
051《編譯原理》
052《深度實踐嵌入式 Linux 系統移植》
053《UNIX 環境高級編程》
054《linux 網路編程》
055《C 語言程序設計》
056《unix 環境高級編程》
057《嵌入式 linuxc 語言程序設計基礎教程》
058《Java 編程思想》
059《TCP/IP 詳解》
060《linux 技術手冊》
061《C 語言深度剖析》
062《Unix 高級環境編程》
063《C++primerplus》
064《QT》
065《C 程序設計》
066《C 和指針》
067《C++primer》
068《C 程序設計語言》
069《ProgrammingC#》
070《thinking in C++》
071《Linux Device driver》
072《Linux kernel development》
073《軟體工程》
074《C 和指針》
075《Android 核心代碼》
076《Android 技術內幕》
077《Android 底層移植》
078《Unix 編程手冊(上下卷)》
079《Linux 驅動設計第三版》
080《ARM 實戰開發》
081《unix 環境高級編程》
082《tcp/ip 編程詳解》
083《Linux 網路編程》
084《Unix 編程藝術》
085《計算機程序的構造和解釋》
086《C Primer plus》
087《LINUX 權威指南》
088《LINUX 設備驅動程序》
089《The C Programming Language》
090《ajax 高級程序設計》
091《angula js 權威教程》
092《ARM 體系結構》
093《Unix 環境高級編程》
094《Linux 設備驅動程序》
095《現代操作系統》
096《TCP/IP 協議詳解》
097《嵌入式 C 語言設計模式》
098《Struts In Action》
099《c 程序設計語言(第二版)》
100《深入理解 Linux 內核(第三版)》
Ⅲ 什麼linux認證比較超值和微軟認證,思科認證比呢
紅帽認證工程師是業界公認的最權威的Linux認證之一。RHCE 是世界上第一個面向Linux 的認證考試,它不是一個普通的認證測試,和其他操作系統認證考試相比,它沒有筆試,全部是現場實際操作,所以RHCE成了業界公認的最難的認證考試之一。【51CTO紅帽認證送考量位居前列,優質紅帽課程免費試學】
紅帽認證是不可以跨級考試的,必須初級、中級、高級逐級來考。也就是說想要獲得RHCE證書,必須要先通過RHCSA考試。
從事Linux運維考證毋庸置疑的選擇就是紅帽,因為紅帽提供了Linux由淺入深飢世鏈完整學習路線的認證培訓,也是全球范圍內認可的Linux;其他爛孫職業如果想要轉行從事Linux運維工作,也可以考個紅帽認證作為入行敲門磚。
想學習的話可以咨詢一下51CTO學堂,51CTO學堂課程內容詳實,高清錄播打基礎,重難點和考點直播授課,配備51CTO研發教輔。在線題庫,包括歷年考試認證真題、模擬題,各大名企面試題、筆試題以及各技術領域能力自測題;每一道試題都配備有專業的答案解析,只返首要登錄個人賬號就能使用題庫,明確知識難點。
Ⅳ 如何設置UNIX/Linux中新創建目錄或文件的默認許可權
在unix或者linux中,創建一個新文件或者目錄時,這個文件或者目錄都具有一個默認的許可權,比如目錄755,文件644,這些默認許可權是由umask(許可權掩碼)來控制的,一般umask默認值為022,其最終效果就是新創建的目錄許可權為755,文件許可權為644。所以只要修改了用戶的umask值,就可以控制默認許可權。
1、查看當前umask值,終端運行:
$umask
2、根據實際需要設置新的umask:
$umasknnn
n為1-7中的任一數字,可以根據文件或者目錄許可權的數字表示值計算得到。
示例:
$umask002
目錄許可權:7-0=7,7-0=7,7-2=5, 即新建目錄的默認許可權為775
文件許可權:目錄許可權去掉執行許可權(-1),即664。
執行該命令只在用戶本次登錄期間有效,下次登錄會恢復默認許可權umask。3、讓umask值在用戶每次登錄後都有效
編輯用戶環境變數(~/.profile)文件或者所有用戶環境變數(/etc/profile)文件中,修改(或增加)語句umask nnn。
umask值 目錄 文件
022 755 644027 750640
002775664
006771660
007770660