題目要求:
1.新建檔案,設定檔案許可權遮蔽字為0;
2.建立該檔案的硬鏈結檔案,列印硬鏈結檔案的inode節點號和檔案大小;
3.建立該檔案的軟鏈結檔案,列印軟鏈結檔案的inode節點號和檔案大小;列印軟鏈結檔案中的內容;
4.列印原始檔的inode節點號,檔案大小和鏈結數目;
5.呼叫unlink對原始檔進行操作,列印原始檔鏈結數目;
源**:
#include
#include
#include
#include
#include
#include
#include
#include
int main (int argc,char* argv)
fchmod(fd,s_irwxu|s_irwxg|s_irwxo);
struct stat statbuf,statbuf1,statbuf2,statbuf3;
fstat(fd,&statbuf);
umask(0);
close(fd);
if(link("process","process1")<0)
stat("process1",&statbuf1);
printf("link:inodenum:%ld\tsize is :%ld\n",statbuf1.st_ino,statbuf1.st_size);
stat("process",&statbuf3);
if(symlink("process","process2")<0)
lstat("process2",&statbuf2);
char str[1024];
if(readlink("process2",str,1024)<0)
printf("symlink_inode:inodenum:%ld\tsize is :%ld\n",statbuf2.st_ino,statbuf2.st_size);
printf("read num is :%s\n",str);
printf("the father file inode is %ld,size is %ld,linknum is %ld\n",statbuf3.st_ino,statbuf3.st_size,statbuf3.st_nlink);
if(unlink("process")<0)
printf("after unlink , tempfile link num is :%ld",statbuf3.st_nlink);
return 0; }
umask()系統呼叫
功能為程序設定檔案訪問許可權遮蔽字,並返回以前的值
標頭檔案#include
#include
函式原型
mode_t umask(mode_t mask);
chmod()/fchmod()系統呼叫
功能更改檔案許可權
標頭檔案#include
#include
函式原型
int chmod(const char *path, mode_t mode);
int fchmod(int fildes, mode_t mode);
返回值成功時返回0
失敗返回-1
link()/unlink()系統呼叫
功能建立/刪除乙個硬鏈結
標頭檔案#include
函式原型
int link(const char *oldpath, const char *newpath);
int unlink(const char *pathname);
刪除乙個檔案的目錄項並減少它的鏈結數
返回值成功時返回0
失敗返回-1
symlink()/readlink()系統呼叫
標頭檔案#include
函式原型
int symlink(const char *oldpath, const char *newpath);
功能:用來建立符號鏈結檔案。
返回值成功時返回0
否則-1
int readlink(const char *path, char *buf, size_t bufsiz);
功能:readlink 函式用來讀取鏈結檔案本身的內容(也就是符號鏈結指向的檔案的檔名)。
返回值成功時返回放置在buffer中的字元數
否則-1
學習Linux C程式設計之檔案操作
1 fopen函式 fopen函式類似於系統呼叫中的open函式。和open一樣,它返回檔案的識別符號,只是這裡叫做流 stream 在庫函式裡實現為乙個指向檔案的指標。如果需要對裝置的行為進行明確的控制,最好使用底層系統呼叫,因為這可以避免使用庫函式帶來的一些非預期的 如輸入 輸出緩衝。函式原型 ...
Linuxc高階程式設計之程序1
1.列印當前所有環境變數的值 2.新增新的環境變數newenv first 3.修改環境變數newenv的值為second 4.列印環境變數newenv的值。源 include include include extern char environ int main int argc,char ar...
Linuxc高階程式設計之檔案系統大作業
假設乙個學生的資訊包括姓名,學號,性別,年齡,班級,籍貫六項資訊,編寫乙個簡單的學生管理系統 源 include include include include include include include define malloc stu malloc sizeof stu static in...