程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 簡略引見C說話中的umask()函數和truncate()函數

簡略引見C說話中的umask()函數和truncate()函數

編輯:關於C++

簡略引見C說話中的umask()函數和truncate()函數。本站提示廣大學習愛好者:(簡略引見C說話中的umask()函數和truncate()函數)文章只能為提供參考,不一定能成為您想要的結果。以下是簡略引見C說話中的umask()函數和truncate()函數正文


C說話umask()函數:設置樹立新文件時的權限遮罩
頭文件:

#include <sys/types.h>  #include <sys/stat.h>

界說函數:

mode_t umask(mode_t mask);

函數解釋:umask()會將體系umask值設成參數mask&0777後的值, 然後將先前的umask值前往。在應用open()樹立新文件時, 該參數mode 並不是真正樹立文件的權限, 而是(mode&~umask)的權限值。

例如:
在樹立文件時指定文件權限為0666, 平日umask 值默許為022, 則該文件的真正權限則為0666&~022=0644, 也就是rw-r--r--前往值此挪用不會有毛病值前往. 前往值為本來體系的umask 值。

C說話truncate()函數:轉變文件年夜小
頭文件:

#include <unistd.h>

界說函數:

int truncate(const char * path, off_t length);

函數解釋:truncate()會將參數path 指定的文件年夜小改成參數length 指定的年夜小. 假如本來的文件年夜小比參數length 年夜, 則跨越的部門會被刪去.

前往值:履行勝利則前往0, 掉敗前往-1, 毛病緣由存於errno.

毛病代碼:
1、EACCESS 參數path 所指定的文件沒法存取。
2、EROFS 欲寫入的文件存在於只讀文件體系內。
3、EFAULT 參數path 指針超越可存取內存空間。
4、EINVAL 參數path 包括不正當字符。
5、ENAMETOOLONG 參數path 太長。
6、ENOTDIR 參數path 途徑並不是一目次。
7、EISDIR 參數path 指向一目次。
8、ETXTBUSY 參數path 所指的文件為同享法式, 並且正被履行中。
9、ELOOP 參數path 有過量符號銜接成績。
10、EIO I/O 存取毛病。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved