亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Linux文件操作知識(shí)點(diǎn)

 更新時(shí)間:2018年09月14日 08:21:41   投稿:laozhang  
在本篇文章中我們給大家詳細(xì)分享了關(guān)于Linux文件操作的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。

文件操作的相關(guān)系統(tǒng)調(diào)用

創(chuàng)建

int creat(const char *filename, mode_t mode);

參數(shù)mode 指定新建文件的存取權(quán)限,它同umask 一起決定文件的最終權(quán)限(mode&umask),其中umask 代表了文件在創(chuàng)建時(shí)需要去掉的一些存取權(quán)限,它只影響讀、寫(xiě)和執(zhí)行權(quán)限,調(diào)用函數(shù)為int umask(int newmask)。

打開(kāi)

int open(const char *pathname, int flags);

pathname是我們要打開(kāi)的文件名(包含路徑名稱,默認(rèn)在當(dāng)前路徑下)

flags打開(kāi)的標(biāo)志

O_RDONLY 以只讀的方式打開(kāi)文件

O_WRONLY 以只寫(xiě)的方式打開(kāi)文件

O_RDWR 以讀寫(xiě)的方式打開(kāi)文件

O_APPEND 以追加的方式打開(kāi)文件

O_CREAT 創(chuàng)建一個(gè)文件

O_EXEC 如果使用了O_CREAT而且文件已經(jīng)存在,就會(huì)發(fā)生一個(gè)錯(cuò)誤

O_NOBLOCK 以非阻塞的方式打開(kāi)一個(gè)文件

O_TRUNC 如果文件已經(jīng)存在,則刪除文件的內(nèi)容

int open(const char *pathname,int flag,mode_t mode)

當(dāng)flag為O_CREATE,指定mode標(biāo)志,用來(lái)表示文件的訪問(wèn)權(quán)限

S_IRUSR 用戶可以讀

S_IWUSR 用戶可以寫(xiě)

S_IXUSR 用戶可以執(zhí)行

S_IRWXU 用戶可以讀、寫(xiě)、執(zhí)行

S_IRGRP 組可以讀

S_IWGRP 組可以寫(xiě)

S_IXGRP 組可以執(zhí)行

S_IRWXG 組可以讀、寫(xiě)、執(zhí)行

S_IROTH 其他人可以讀

S_IWOTH 其他人可以寫(xiě)

S_IXOTH 其他人可以執(zhí)行

S_IRWXO 其他人可以讀、寫(xiě)、執(zhí)行

S_ISUID 設(shè)置用戶的執(zhí)行ID

S_ISGID 設(shè)置組的執(zhí)行ID

mode標(biāo)志也可以用數(shù)字來(lái)表示文件權(quán)限:

每個(gè)數(shù)字可以取1(執(zhí)行權(quán)限)、2(寫(xiě)權(quán)限)、4(讀權(quán)限)、0(無(wú))或者是這些值的和。

第一位表示設(shè)置用戶ID

第二位表示設(shè)置組ID

第三位表示用戶自己的權(quán)限位

第四位表示組的權(quán)限

第五位表示其他人的權(quán)限

open("test", O_CREAT, 10705);

上述語(yǔ)句等價(jià)于:

open("test", O_CREAT, S_IRWXU | S_IROTH | S_IXOTH | S_ISUID );

讀寫(xiě)

int read(int fd, const void *buf, size_t length);
int write(int fd, const void *buf, size_t length);

參數(shù)fd文件描述符,buf為指向緩沖區(qū)的指針,length為緩沖區(qū)的大?。ㄒ宰止?jié)為單位),返回值為實(shí)際讀取和寫(xiě)入的字節(jié)數(shù)。

read( )實(shí)現(xiàn)從文件描述符fd所指定的文件中讀取length個(gè)字節(jié)到buf所指向的緩沖區(qū)中,返回值為實(shí)際讀取的字節(jié)數(shù)

write( )實(shí)現(xiàn)將把length 個(gè)字節(jié)從buf 指向的緩沖區(qū)中寫(xiě)到文件描述符fd所指向的文件中,返回值為實(shí)際寫(xiě)入的字節(jié)數(shù)。

定位

對(duì)于隨機(jī)文件,我們可以隨機(jī)地指定位置讀寫(xiě):
int lseek(int fd, offset_t offset, int whence);

lseek()將文件讀寫(xiě)指針相對(duì)whence移動(dòng)offset(可取負(fù)值)個(gè)字節(jié)。操作成功時(shí),返回文件指針相對(duì)于文件頭的位置。

參數(shù)whence可以使用如下值:

SEEK_SET:相對(duì)文件開(kāi)頭。
SEEK_CUR:相對(duì)文件讀寫(xiě)指針的當(dāng)前位置。
SEEK_END:相對(duì)文件末尾。

關(guān)閉

int close(int fd);

C庫(kù)函數(shù)的文件操作——獨(dú)立于具體的操作系統(tǒng)平臺(tái)

創(chuàng)建和打開(kāi)

FILE *fopen(const char *path, const char *mode);
fopen()實(shí)現(xiàn)打開(kāi)指定文件filename,其中的mode為打開(kāi)模式,Linux 系統(tǒng)不區(qū)分二進(jìn)制文件和文本文件。

mode的值

r、rb 以只讀方式打開(kāi)

w、wb 以只寫(xiě)方式打開(kāi)。如果文件不存在,則創(chuàng)建該文件,否則文件被截?cái)?/p>

a、ab 以追加方式打開(kāi)。如果文件不存在,則創(chuàng)建該文件

r+、r+b、rb+ 以讀寫(xiě)方式打開(kāi)

w+、w+b、wh+ 以讀寫(xiě)方式打開(kāi)。如果文件不存在,則創(chuàng)建新文件,否則文件被截?cái)?/p>

a+、a+b、ab+ 以讀和追加方式打開(kāi)。如果文件不存在,則創(chuàng)建新文件

讀寫(xiě)

int fgetc(FILE *stream);
int fputc(int c, FILE *stream);
char *fgets(char *s, int n, FILE *stream);
int fputs(const char *s, FILE *stream);
int fprintf(FILE *stream, const char *format, ...);
int fscanf (FILE *stream, const char *format, ...);
size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
size_t fwrite (const void *ptr, size_t size, size_t n, FILE *stream);
int fsetpos(FILE *stream, fpos_t *pos);
nt fsetpos(FILE *stream, const fpos_t *pos);
int fseek(FILE *stream, long offset, int whence);

 

fread()實(shí)現(xiàn)從stream中讀取n 個(gè)字段,每個(gè)字段為size個(gè)字節(jié),并將讀取的字段放入ptr 所指的字符數(shù)組中,返回實(shí)際已讀取的字段數(shù)。

write()實(shí)現(xiàn)從緩沖區(qū)ptr 所指的數(shù)組中把n 個(gè)字段寫(xiě)到stream 中,每個(gè)字段長(zhǎng)為size個(gè)字節(jié),返回實(shí)際寫(xiě)入的字段數(shù)。

關(guān)閉

int fclose (FILE *stream);

Linux文件系統(tǒng)目錄結(jié)構(gòu)

/bin----存放著最經(jīng)常使用的基本命令,如ls、cp、mkdir 等,這個(gè)目錄中的文件都是可執(zhí)行的。

/boot----啟動(dòng)Linux時(shí)使用的一些核心文件,包括一些連接文件以及鏡像文件,如vmlinuz、initrd.img

/dev----設(shè)備文件存儲(chǔ)目錄,應(yīng)用程序通過(guò)對(duì)這些文件的讀寫(xiě)和控制就可以訪問(wèn)實(shí)際的設(shè)備。

/etc----系統(tǒng)管理所需要的配置文件和子目錄,如用戶賬號(hào)及密碼配置文件。

/home----普通用戶的家目錄,每個(gè)用戶都有一個(gè)自己的目錄,一般該目錄名是以用戶的賬號(hào)命名的。

/lib----庫(kù)文件存放目錄,系統(tǒng)最基本的動(dòng)態(tài)連接共享庫(kù),類(lèi)似于Windows里的DLL文件。

/lost+found----一般情況下是空的,當(dāng)系統(tǒng)意外崩潰或機(jī)器意外關(guān)機(jī)時(shí)會(huì)產(chǎn)生一些文件碎片放在這里。

/mnt----方便用戶臨時(shí)掛載別的文件系統(tǒng)的,如將光驅(qū)掛載在/mnt/上,進(jìn)入該目錄就可以查看光驅(qū)里的內(nèi)容

media----自動(dòng)識(shí)別一些設(shè)備掛載到這個(gè)目錄下,例如U盤(pán)、光驅(qū)等等。

/opt----給主機(jī)額外安裝軟件所存放的目錄

/proc----操作系統(tǒng)運(yùn)行時(shí),進(jìn)程及內(nèi)核信息(比如CPU、硬盤(pán)分區(qū)、內(nèi)存信息等)存放在這里。它是系統(tǒng)內(nèi)存的映射,存在在內(nèi)存,通過(guò)直接訪問(wèn)這個(gè)目錄來(lái)獲取系統(tǒng)信息。

/root----超級(jí)權(quán)限用戶的家目錄

/sbin----超級(jí)權(quán)限用戶的可執(zhí)行命令存放目錄,普通用戶無(wú)權(quán)限執(zhí)行這個(gè)目錄下的命令

/tmp-----存放臨時(shí)文件。

/usr-----系統(tǒng)應(yīng)用程序和文件(如命令、幫助文件)存放程序的目錄,類(lèi)似于windows下的program files目錄。

/var-----經(jīng)常被修改的目錄放在這個(gè)目錄下,如日志文件

/sys----內(nèi)核設(shè)備樹(shù)的一個(gè)直觀反映。當(dāng)一個(gè)內(nèi)核對(duì)象被創(chuàng)建的時(shí)候,對(duì)應(yīng)的文件和目錄也在內(nèi)核對(duì)象子系統(tǒng)中被創(chuàng)建。

/initrd---若在啟動(dòng)過(guò)程中使用了initrd 映像作為臨時(shí)根文件系統(tǒng),則在執(zhí)行完其上的/linuxrc掛接真正的根文件系統(tǒng)后,原來(lái)的初始RAM文件系統(tǒng)被映射到/initrd目錄。

Linux文件系統(tǒng)與設(shè)備驅(qū)動(dòng)

相關(guān)文章

  • ubuntu/deepin制作快捷啟動(dòng)圖標(biāo)的方法

    ubuntu/deepin制作快捷啟動(dòng)圖標(biāo)的方法

    這篇文章主要介紹了ubuntu/deepin制作快捷啟動(dòng)圖標(biāo)的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • Ubuntu下各種壓縮與解壓的方式小結(jié)

    Ubuntu下各種壓縮與解壓的方式小結(jié)

    這篇文章主要給大家介紹了在Ubuntu系統(tǒng)下各種壓縮與解壓的方式,其中包括.tar、.gz、.bz2、.bz、.Z、.tgz、.zip、.rar以及.lha等各個(gè)的解壓與壓縮方法,每一種都給出了示例代碼,需要的朋友可以參考學(xué)習(xí),一起來(lái)看看吧。
    2017-04-04
  • Apache中偽靜態(tài)Rewrite的使用方法和URL重寫(xiě)規(guī)則表達(dá)式講解

    Apache中偽靜態(tài)Rewrite的使用方法和URL重寫(xiě)規(guī)則表達(dá)式講解

    apache中的mod_rewrite模塊提供了一個(gè)基于正則表達(dá)式分析器的重寫(xiě)引擎來(lái)實(shí)時(shí)重寫(xiě)URL請(qǐng)求,主要的功能就是實(shí)現(xiàn)URL的跳轉(zhuǎn),它的正則表達(dá)式是基于Perl語(yǔ)言。可基于服務(wù)器級(jí)的(httpd.conf)和目錄級(jí)的(.htaccess)兩種方式,允許通過(guò)它來(lái)改變Apache?Web服務(wù)器的配置。
    2022-11-11
  • .htaccess使用方法總結(jié)

    .htaccess使用方法總結(jié)

    在利用.htaccess的Rewrite規(guī)則實(shí)現(xiàn)Discuz論壇的偽靜態(tài)鏈接中已經(jīng)提到過(guò)了.htaccess的重定向的使用,這里讓我們來(lái)比較全面的了解一下.htaccess吧。
    2010-12-12
  • Linux系統(tǒng)下根目錄擴(kuò)容介紹

    Linux系統(tǒng)下根目錄擴(kuò)容介紹

    大家好,本篇文章主要講的是Linux系統(tǒng)下根目錄擴(kuò)容介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 阿里云服務(wù)器CentOS 6.3下快速安裝部署 LAMP 、vsftpd 環(huán)境的方法

    阿里云服務(wù)器CentOS 6.3下快速安裝部署 LAMP 、vsftpd 環(huán)境的方法

    這篇文章主要介紹了阿里云服務(wù)器CentOS 6.3下快速安裝部署 LAMP 、vsftpd 環(huán)境的方法的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • 詳解CentOS下Nginx如何禁止IP訪問(wèn)

    詳解CentOS下Nginx如何禁止IP訪問(wèn)

    服務(wù)器的安全相信是每位運(yùn)維人員最關(guān)心的問(wèn)題,不知道大家在使用的時(shí)候會(huì)不會(huì)遇到很多的惡意IP攻擊,最近公司的服務(wù)器就遇到了這個(gè)問(wèn)題,這個(gè)時(shí)候就要用到Nginx 禁止IP訪問(wèn)了。本文介紹了詳細(xì)的步驟,有同樣問(wèn)題的朋友們可以參考學(xué)習(xí)。
    2016-10-10
  • Linux十個(gè)新手命令分享

    Linux十個(gè)新手命令分享

    這篇文章主要介紹了Linux十個(gè)新手命令分享,然后介紹了幾個(gè)其他常用命令,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • 安裝CentOS 6.x報(bào)錯(cuò)

    安裝CentOS 6.x報(bào)錯(cuò)"Disk sda contains BIOS RAID metadata"解決方法

    今天在安裝CentOS6.2的時(shí)候,當(dāng)進(jìn)到檢測(cè)硬盤(pán)的時(shí)候,總是過(guò)不去,報(bào)錯(cuò)如下: Disk sda contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sda,真是不知如何解決,下面小編把我的思路分享到腳本之家平臺(tái),需要的朋友參考下
    2019-11-11
  • linux環(huán)境下安裝jdk和Tomcat詳細(xì)步驟

    linux環(huán)境下安裝jdk和Tomcat詳細(xì)步驟

    大家好,本篇文章主要講的是linux環(huán)境下安裝jdk和Tomcat詳細(xì)步驟,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收一下,方便下次瀏覽
    2021-12-12

最新評(píng)論