C語言中access函式的使用

2021-08-05 21:50:45 字數 1538 閱讀 5188

gnu的c語言庫其實功能還是很強大的,不過這方面我了解學習的確實是不多。最近又接觸到了乙個檔案訪問操作的函式,之前覺得只有高階語言才能夠實現,沒想到借用glibc用c語言實現起來也蠻簡單的。這個函式的宣告在io.h中,但是網路上的很多文章都寫錯了。不過,他們說的標頭檔案恰好包含了io.h檔案,因此**上倒是沒有什麼大的問題。

關於檔案的訪問模式,在io.h檔案中有如下巨集定義:

/* some defines for _access naccessmode (msdoesn't define them, but

* it doesn't seem to hurt to add them). */

#define  f_ok      0     /* check for file existence */

#define  x_ok      1     /* check for execute permission. */

#define  w_ok     2     /* check for write permission */

#define  r_ok      4     /* check for read permission *

從**的注釋中可以看到,在windows系統中這個似乎是沒有用的。看來,這個功能是專門為unix-linke的系統設計的。不過,相應的引數應該還是可以使用,只是結果或許不是我們想要的。

函式的原型如下:

_crtimp int __cdecl _access(const char*_filename,int _accessmode)

寫一段測試**如下:

#include"stdio.h"

#include"io.h"

int main(void)

if(access("./access_demo.c",f_ok)==0)

printf("fileexists!\n");

if(access("./access_demo.c",x_ok)==0)

printf("file can beexecuted!\n");

if(access("./access_demo.c",w_ok)==0)

printf("file can bewritten!\n");

if(access("./access_demo.c",r_ok)==0)

printf("file can beread!\n");

return 0;

**編譯後程式執行結果如下:

e:\01_workspace\02_programme_language\01_clang\2017\08\08>gccaccess_demo.c

e:\01_workspace\02_programme_language\01_clang\2017\08\08>a

file exists!

file can beexecuted!

file can bewritten!

file can be read!

從上面的結果可以看出,在windows下面其實這個函式只是提供了這樣的乙個介面,其實並沒有相應的功能。

c語言中 gotoxy 函式的使用

include include void gotoxy int x,int y handle hout getstdhandle std output handle 獲取標準輸出裝置控制代碼 setconsolecursorposition hout,pos 兩個引數分別是指定哪個窗體,具體位置 i...

C語言中pow函式的使用

標頭檔案 include 1.函式原型 pow 函式用來求 x 的 y 次冪 次方 x y及函式值都是double型 其原型為 double pow double x,double y 2.使用 pow 用來計算以x 為底的 y 次方值,然後將結果返回。設返回值為 ret,則 ret xy。3.注意...

C語言中的函式

在對c語言有過一定的了解之後,我們都會涉及到乙個概念 函式。那麼,什麼是函式呢?首先,我們來看一段 includeint max int x,int y int main 在上面的程式中,我們將引數a,b傳入到函式max之中,最後求出結果並返回,那麼,這樣寫的好處是什麼呢?我們為什麼要使用函式來實現...