因為手上的活遇到了檔案相關的操作,記錄一下相關的**,以便以後檢視。
系統環境: linux
建立指定路徑的檔案,利用mkdir函式
/**
*pathname 表示絕對路徑字串
*mode 表示資料夾許可權
*更多資訊可以利用 man 2 mkdir 在終端檢視
*/int
mkdir
(const
char
*pathname, mode_t mode)
;
示例:
#include
void
createfolder
(std::string foldername)
else
}else
}
示例:
//直接呼叫 linux 終端命令
std::string command =
"mkdir -p "
+ folder +
"\nchown system.system "
+ folder +
"\nchmod 775 "
+ folder;
system
(command.
c_str()
);//利用chmod和chown函式實現;
#include
#include
#include
void do_chown (
const
char
*file_path,
const
char
*user_name,
const
char
*group_name)
uid = pwd-
>pw_uid;
grp =
getgrnam
(group_name);if
(grp ==
null
) gid = grp-
>gr_gid;if(
chown
(file_path, uid, gid)==-
1)if(
(chmod
(file_path,
0775))
==-1)
}
建立檔案就很簡單了,直接呼叫 fstream 中的 open 函式就可以建立。
//c++
#include
std::fstream fbinary;
fbinary.
open
(filemapbinary[storenum]
;//c
int fd2 =
open
("/tmp/test.svg"
, o_rdwr | o_creat, s_irusr | s_irgrp | s_iroth)
;
因為在使用中主要是讀寫二進位制,所以記錄了一下二進位制的讀寫。
// copy a file
#include
// std::ifstream, std::ofstream
int main (
)
順便記錄一下 linux 下如何檢視二進位制檔案:
vim -b filename
%!xxd -g 1
不包含子資料夾
void
getallfile
(std::string folderpath, std::vector
& vs)
while
((dtr =
readdir
(dir))!=
null
)else
}closedir
(dir)
;}
獲取檔案的資訊,利用 stat 結構體
struct stat
;
示例:
#include
#include
void
getinfo
(std::string& filename)
在Linux系統上對於檔案許可權的操作 練習題
步驟 1 首先在testdir目錄下建立乙個dir目錄,同時建立組g1 g2 g3和使用者alice tom,在建立的時候就為兩個使用者設定組 2 在上張最後的chmod g s dir命令是設定目錄的sgid許可權,這樣在dir目錄下建立的新檔案的組就和dir目錄的組相同了 之後我們chgrp g...
對於Linux檔案系統的inode的理解
本文基於前人理解,如有不客觀情況,請不吝賜教,共同進步 首先說的是inode 索引節點,information node 其次是要理解硬碟的檔案儲存才能對inode有全面的理解.1.硬碟上最小的儲存單位是扇區 sector 每個扇區儲存512bytes 0.5kb 的資料.linux檔案系統讀取硬碟...
C Linux下的itoa函式
上篇文章說到linux需要itoa函式,下面我就提供乙份跨平台的itoa函式。這個函式會返回字串的長度,在某些場合下會很有用。return the length of result string.support only 10 radix for easy use and better perfor...