1. 程式人生 > >Linux系統函式open和close(03)---open函式的引數

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系統函式openclose03---open函式引數

環境:Vmware Workstation;CentOS-6.4-x86_64 說明: open函式的定義形式:int open(const char *pathname, int flags); 引數說明: 1、pathname指的是檔案的路徑+檔名,路徑可以是相對路

Linux系統函式openclose01

說明: 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系統備份還原工具1DD應用實例

環境 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