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之中,最後求出結果並返回,那麼,這樣寫的好處是什麼呢?我們為什麼要使用函式來實現...