Linux系統函式open和close(03)---open函式的引數
環境:Vmware Workstation;CentOS-6.4-x86_64
說明:
open函式的定義形式:int open(const char *pathname, int flags);
引數說明:
1、pathname指的是檔案的路徑+檔名,路徑可以是相對路徑,也可以是絕對路徑。
2、flags指的是開啟檔案的狀態:O_RDONLY、O_WRONLY、O_RDWR、O_CREAT、O_APPEND。
圖解說明:
特別說明:
O_APPEND,追加方式,就是開啟一個檔案,如果向檔案中寫入內容的話,會在原有內容的基礎上在最後新增。
O_CREAT,建立方式,就是原來沒有這個檔案,通過這個模式,會自動建立一個檔案並開啟(注意這個詞的拼寫方式)。
步驟:
1、建立並編輯原始檔main.c:
#include <sys/stat.h>
#include <fcntl.h>
// 包含close所需要的標頭檔案
#include <unistd.h>
int main(int argc, char *args[])
{
// 以建立的方式開啟一個不存在的檔案
int fd1 = open("a.txt", O_CREAT);
printf("fd1 = %d\n", fd1);
close(fd1);
return 0;
}
2、建立並編輯檔案makefile:
.SUFFIXES:.c .o
CC=gcc
SRCS=main.c
OBJS=$(SRCS:.c=.o)
EXEC=main
start: $(OBJS)
$(CC) -o $(EXEC) $(OBJS)
@echo "-----------------------------OK-----------------------"
.c.o:
$(CC) -Wall -o [email protected] -c $<
clean:
rm -rf $(EXEC) $(OBJS)
3、編譯並執行程式:[[email protected] mycode]$ make
gcc -Wall -o main.o -c main.c
gcc -o main main.o
-----------------------------OK-----------------------
[[email protected] mycode]$ ./main
fd1 = 3
根據程式的執行結果可以看出,在沒有建立檔案a.txt的時候,執行程式也會正確返回檔案描述符,這就說明了,使用O_CREAT在開啟檔案的時候,如果檔案不存在,就會建立。
特別說明:以O_CREAT方式開啟的檔案,建立之後,這個檔案的許可權是隻讀的。
PS:根據傳智播客視訊學習整理得出。
相關推薦
Linux系統函式open和close(03)---open函式的引數
環境:Vmware Workstation;CentOS-6.4-x86_64 說明: open函式的定義形式:int open(const char *pathname, int flags); 引數說明: 1、pathname指的是檔案的路徑+檔名,路徑可以是相對路
Linux系統函式open和close(01)
說明: open函式:是Linux的系統函式。 close函式:是Linux的系統函式。 檔案有開啟(open)就要有關閉(close),檔案的開啟和關閉時搭配使用的。 環境:Vmware Workstation;CentOS-6.4-x86_64 檔案操作:有開啟,必須
嵌入式Linux C程式設計學習之路(七)—— Open/Close函式
1. input & output:站在應用層考慮 Input:核心-->使用者,從核心讀取資料或從檔案讀取資料 ————read函式 Output:使用者-->核心,寫資料到核心或寫資料到檔案中 ————write函式 2. 核心中檔案太多了,寫到
Linux學習之三:文件夾系統的結構和相對(絕對)路徑
sharp 二進制 沒有 數據 csharp pan 用戶 ont 臨時 理解每個目錄的作用 bin 二進制文件 boot 系統的啟動文件、內核 dev 設備文件 etc 配置文件 home 用戶的家目錄 lib 鏈接庫文件 l
Linux的使用者和組(03)
楔子 登入linux系統時,必須通過指定的使用者名稱和密碼進行登入。我們的使用者名稱是zjh,但是Linux不把我們看作zjh,而是一個數字。 在Linux中,用userid(一個32位的二進位制整數)來表示使用者。 可以通過id命令,檢視自己的userid
Python 建立、讀取和寫入檔案以及yield關鍵字- 千月的python linux 系統管理指南學習筆記(14)
無論是日誌檔案還是配置檔案都是我們日常運維中常見的型別,學習處理檔案的關鍵是學會如何處理文字資料。Python 包含一個稱為 file 的內建型別,可以用來處理檔案。 建立檔案物件 為了讀取一個現有的檔案,我們需要建立一個新的檔案物件,以用來對檔案進行互動。 open
Linux系統備份還原工具1(DD)(應用實例)
環境 mnt 之前 air 更換 ibm grub resize 方法 DD使用教程:http://www.cnblogs.com/EasonJim/p/7442223.html 以下實例沒經過大量測試,可能在一些機器上不會有效。 一般圍繞以下幾點進行設置: 1、dd
Linux系統管理----存儲管理(二)
運維 系統 創建文件系統----分區格式化 格式化 低級格式化:磁盤初始化,磁道劃分; 高級格式化:創建或重建文件系統;按照某種特定的標準,將整個分區劃分為大小相同的若幹小的邏輯編址單元,每個這樣的單元,稱為塊(Block);window中稱為:簇 劃分
Linux系統管理----存儲管理(三)
網絡 運維 Linux系統中常用的壓縮和解壓縮工具: 壓縮:以時間換空間的一種操作; 壓縮的實現:標記 + 替換 壓縮比:某個文件在壓縮操作之前與壓縮操作之後的文件大小的比值;(比值越大,壓縮結果越小) 通常來說,純文本文件的壓縮比比較大;Linux中常用的壓縮工具: c
linux文件壓縮和打包(上)
fff nag mark com -o mar col color .com 6.1壓縮打包介紹6.2gzip壓縮工具6.3bzip2壓縮工具6.4xz壓縮工具6.1壓縮打包介紹6.2gzip壓縮工具6.3bzip2壓縮工具6.4xz壓縮工具linux文件壓縮和打包(上)
linux基礎篇-加密和安全(一)
證書 rss base64 encrypt 加密和解密 leg 效應 pubkey 鼠標 加密和安全(一) 主要內容 ♣ 安全機制 ♣ 對稱和非對稱加密 ♣ 散列算法 ♣ gpg ♣ PKI和CA &cl
類和物件(5)—— 建構函式的分類及呼叫
無引數建構函式、有引數建構函式、賦值建構函式 (3)拷貝建構函式 由已存在的物件,建立新物件。也就是說新物件,不由構造器來構造,而是由拷貝構造器來完成。拷貝構造器的格式是固定的。 #define _CRT_SECURE_NO_WARNINGS #includ
Linux啟動過程初始化步驟(八)----davinci_gpio_irq_setup函式
/* * NOTE: for suspend/resume, probably best to make a platform_device with * suspend_late/resume_resume calls hooking into results of the set
Linux系統程式設計學習常見問題(一):VMware虛擬機器下Ubuntu18.04突然上不了網的問題解決方案
問題描述:VMware虛擬機器下Ubuntu18.04突然上不了網的問題:如下圖所示: 更改這裡的三種連線方式都是這樣 2. 分析:IP衝突或者配置出了問題,需重新更新設定。 3. 解決: (1)將模式調整為
Linux系統SPI驅動學習筆記(一)
SPI是"Serial Peripheral Interface" 的縮寫,是一種四線制的同步序列通訊介面,用來連線微控制器、感測器、儲存裝置,SPI裝置分為主裝置和從裝置兩種,用於通訊和控制的四根線分別是: CS 片選訊號SCK 時鐘訊號MISO 主裝置的
Python 下字串的連線、簡單替換與unicode字串- 千月的python linux 系統管理指南學習筆記(12)
Python 下字串的連線、簡單替換與unicode字串 繼續上一章的內容,看一看字串的連線和替換 字串的連線 join() 將多個字串連線起來的”膠水“ 字元物件.join(字串或者列表) #連線字串,或者與列表裡的字元分別連線。 光是將2個字串相連。其實意義不大,一個
Linux系統的命令別名功能(alias)
Linux系統的命令別名功能 命令別名功能 在管理和維護Linux系統的過程中,將會使用到大量命令,有一些很長的命令或用法經常被用到,重複而頻繁地輸入某個很長命令或用法是不可取的。這時可以使用命令別名功能將這個過程簡單化。 1.系統定義的別名 通常情
在Linux系統配置PHP開發環境(CentOS)
一、使用FileZilla將虛擬機器的伺服器連線起來1、ifconfig獲取虛擬機器的IP地址2、在FileZilla輸入各項資訊進行連線 注:①使用管理員的賬號進行連線 如此才能訪問到根目錄。 ②埠號:大部分都是預設不輸入,我的偏偏要輸入22才
Linux系統基本命令列操作(一)
1,行提示符 如上圖所示,上圖是一個開啟shell後的行提示符。 其中,kiosk為開啟shell的使用者名稱;@為分隔符;foundation15為主機名稱;Desktop為工作目錄名稱;$為身份提示符,#表示超級使用者,$表示普通使用者 注意:
Python 下字串的提取、分割與刪除- 千月的python linux 系統管理指南學習筆記(11)
Python 下字串的提取、分割與刪除 對於文字來講,提取、分割和刪除是我們用的較多的操作。 文字我們可以看成是字串物件。首先說到的是 in 和 not in操作。 字串的提取 in 和 not i