FOPEN 3 2002-01-03

中文man手册

FOPEN

NAME
SYNOPSIS æ»è§
DESCRIPTION æè¿°
RETURN VALUE è¿åå¼
ERRORS
CONFORMING TO æ ååè
SEE ALSO åè§
è·

NAME

fopen, fdopen, freopen - æå¼æµ

SYNOPSIS æ»è§

#include <stdio.h>

FILE *fopen(const char *path, const char *mode);
FILE *fdopen(int
fildes, const char *mode);
FILE *freopen(const char *
path, const char *mode, FILE *stream);

DESCRIPTION æè¿°

彿° fopen æå¼æä»¶å为 path æåçå符串çæä»¶ï¼å°ä¸ä¸ªæµä¸å®å³èã

åæ° mode æåä¸ä¸ªå符串ï¼ä»¥ä¸ååºåä¹ä¸å¼å§ (åºåä¹åå¯ä»¥æéå çå符):

r

æå¼ææ¬æä»¶ï¼ç¨äºè¯»ãæµè¢«å®ä½äºæä»¶çå¼å§ã

r+

æå¼ææ¬æä»¶ï¼ç¨äºè¯»åãæµè¢«å®ä½äºæä»¶çå¼å§ã

w

å°æä»¶é¿åº¦æªæä¸ºé¶ï¼æèåå»ºææ¬æä»¶ï¼ç¨äºåãæµè¢«å®ä½äºæä»¶çå¼å§ã

w+

æå¼æä»¶ï¼ç¨äºè¯»åã妿æä»¶ä¸åå¨å°±å建å®ï¼å¦åå°æªæ- å®ãæµè¢«å®ä½äºæä»¶çå¼å§ã

a

æå¼æä»¶ï¼ç¨äºè¿½å  (卿件尾å)ã妿æä»¶ä¸å- å¨å°±å建å®ãæµè¢«å®ä½äºæä»¶çæ«å°¾ã

a+

æå¼æä»¶ï¼ç¨äºè¿½å  (卿件尾å)ã妿æä»¶ä¸å- å¨å°±å建å®ã读æä»¶çåå§ä½ç½®æ¯æä»¶çå¼å§ï¼ä½æ¯è¾åºæ»æ¯è¢«è¿½åå°æä»¶çæ«å°¾ã

å符串 mode ä¹å¯ä»¥åå«åæ¯ ‘‘b’’ ä½ä¸ºæåä¸ä¸ªå- ç¬¦ï¼æèæå¥å°ä¸é¢æå°çä»»ä½åå符çå符串ç两个å符ä¸é´ãè¿æ ·åªæ¯ä¸ºäºå ANSI X3.159-1989 (‘‘ANSI C’’) æ åä¸¥æ ¼ä¿æå¼å®¹ï¼æ²¡æå®éçææï¼å¨ææçéµå¾ª POSIX çç³»ç»ä¸ï¼‘‘b’’ é½è¢«å¿½ç¥ï¼åæ¬ Linuxã(å¶ä»ç³»ç»å¯è½å°ææ¬æä»¶åäºè¿å¶æä»¶åºå«å¯¹å¾ï¼å¦æå¨è¿è¡äºè¿å¶æä»¶ç I/Oï¼é£ä¹æ·»å  ‘‘b’’ æ¯ä¸ªå¥½ä¸»æï¼å ä¸ºä½ çç¨åºå¯è½ä¼è¢«ç§»æ¤å°é Unix ç¯å¢ä¸ã)

任使°å»ºçæä»¶å°å·ææ¨¡å¼ S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH (0666)ï¼ç¶å以è¿ç¨çæ©ç å¼ umask å ä»¥ä¿®æ¹ (åè§ umask(2)) ã

å¨è¯»/åæµä¸è¿è¡ç读ååæä½å¯ä»¥ä»¥ä»»æçé¡ºåºæ··å使ç¨ã注æ ANSI C è¦æ±æä»¶å®ä½å½æ°åªè½æå¥å¨è¾åºåè¾å¥ä¹é´ï¼é¤éè¾å¥æä½éå°äºæä»¶ç»æç¬¦ã(å¦ææ²¡æéå°è¿ç§æåµï¼é£ä¹è¯»åæ»æ¯è½è¿åé¤äºæè¿åå¥å容ä¹å¤çç»æã) å æ¤ï¼æå¥½ (å¨ Linux ä¸ææ¶æ¯å¿é¡»ç) å¨å¯¹è¿æ ·çæµè¿è¡çåå读æä½ä¹é´å å¥ä¸ä¸ª fseek ææ¯ fgetpos æä½ãè¿ä¸ªæä½å¯ä»¥æ¯å¯¹æ¾å¼çå®ä½çè°ç¨ (ä¾å¦å¨ fseek(..., 0L, SEEK_CUR) ä¸é£æ ·)ï¼å©ç¨åæ¶åççå¯ä½ç¨ã(?)

ä»¥è¿½å æ¹å¼æå¼æä»¶ (以 a ä½ä¸º mode ç第ä¸ä¸ªå符) å°ä½¿å¾ææåç»- ç对è¿ä¸ªæµçåæä½åç卿件æ«å°¾ï¼å°±å¥½åå¨åä¹åè°ç¨äº

fseek(stream,0,SEEK_END);

䏿 ·ã

彿° fdopen å°ä¸ä¸ªæµå³èå°å·²åå¨çæä»¶æè¿°ç¬¦ï¼ fildes. æµçæ¨¡å¼ mode (åå¼ä¸º "r", "r+", "w", "w+", "a", "a+" ä¹ä¸) å¿é¡»ä¸æä»¶æè¿°ç¬¦çæ¨¡å¼æ³å¹éãæ°çæµçå®ä½æ è¯è¢«è®¾ç½®ä¸º fildes åæçå¼ï¼é误åæä»¶ç»ææ è®°è¢«æ¸é¤ãæ¨¡å¼ "w" æè "w+" ä¸ä¼æªæ- æä»¶ãæä»¶æè¿°ç¬¦ä¸ä¼è¢«å¤å¶ï¼å¨å³éç± fdopen åå»ºçæµæ¶ï¼ä¹ä¸ä¼è¢«å³é- ã对å±äº«ååå¯¹è±¡å®æ½ fdopen çç»ææ¯æªå®ä¹çã

彿° freopen æå¼å称为 path æåçå符串çæä»¶ï¼å°å®ä¸ stream æåçæµå³èãåå§çæµ (妿åå¨çè¯) 被å³éãåæ° mode ä¸å¨å½æ° fopen ä¸- ç¨æ³ä¸è´ã彿° freopen 主è¦çç¨å¤æ¯æ¹å䏿 åææ¬æµ (stderr, stdin, æ stdout) ç¸å³èçæä»¶

RETURN VALUE è¿åå¼

妿æåæ§è¡äº fopen, fdopen å freopen å°è¿åä¸ä¸ªæåæä»¶å¯¹è±¡ FILE çæéãå¦åï¼å°è¿å NULL å¹¶å°è®¾ç½®å¨å±åé errno ç弿¥æç¤ºé误åçã

ERRORS

EINVAL

为 fopen, fdopen, æ freopen æä¾çåæ° mode éæ³ã

彿° fopen, fdopen å freopen 乿å¯è½å¤±è´¥å¹¶ç½® errno 为 malloc(3) æå®çå¼ã

彿° fopen 乿å¯è½å¤±è´¥å¹¶ç½® errno 为 open(2) æå®çå¼ã

彿° fdopen 乿å¯è½å¤±è´¥å¹¶ç½® errno 为 fcntl(2) æå®çå¼ã

彿° freopen 乿å¯è½å¤±è´¥å¹¶ç½® errno 为 open(2), fclose(3) å fflush(3) æå®çå¼ã

CONFORMING TO æ ååè

彿° fopen å freopen éµå¾ª ANSI X3.159-1989 (‘‘ANSI C’’) æ åã彿° fdopen éµå¾ª IEEE Std1003.1-1988 (‘‘POSIX.1’’) æ åã

SEE ALSO åè§

open(2), fclose(3), fileno(3)

è·

æ¬é¡µé¢ä¸æçç±ä¸æ man æå页计åæä¾ã
䏿 man æå页计åï¼https://github.com/man-pages-zh/manpages-zh