ਫ 3. ⠭⭠ ⥪ -뢮


1.  䠩 ⥪

#include <stdio.h>

2. । ᨬ " 䠩"  NULL-㪠⥫


#define	NULL	0
#define	EOF	-1

3. । ਯ ⮣ 䠩  stdio.h


typedef	struct
{
...
unsigned flags;		//  ﭨ Ŀ
char 	fd;		//  ⮣ 䠩 (handle) 
unsigned char hold;	// 饭 ᨬ		  
short	bsize;		//  ७ 	  
unsigned char *buffer,*curp;                              
...			//   㪠⥫                
} FILE;  । ⨯ "ਯ 䠩"          
	     	(⥫ ⮪)	                  
  ﭨ - , । १ define 
 
_F_RDWR	-   ⥭  
_F_READ -  ⮫쪮  ⥭
_F_WRIT -  ⮫쪮  
_F_BUF  -  ᪨ 뤥  
_F_LBUF - 筠 ਧ
_F_ERR  - 㦥 訡  믮 樨
_F_EOF  - 㦥  䠩  믮 樨
_F_BIN  -  (஧) ०
_F_IN   - 믮  ⥭
_F_OUT  - 믮  
_F_TERM - 䠩   ନ

4. ஢ઠ 䫠 ﭨ  ਯ 䠩


FILE *fd;
...
if (fd->flags & _F_BIN) ...

5. ம।   㭪樨 ஢ન 䫠 ﭨ

Ŀ
 #define ferror(pf)	((pf)->flags & _F_ERR)		
 #define feof(pf)	((pf)->flags & _F_EOF)		
 #define fileno(pf)	((pf)->fd)			
 void clearerr(FILE *pf)    -  _F_EER  _F_EOF 


6. ⠭ ⮪ (䠩) -뢮

	 ⥪  譨 ६-㪠⥫ 
 ਯ 䠩 - ⠭ ன -뢮.


extern	FILE	*stdin, *stdout, *stderr, *stdaux, *stdprn;
⠭                                 
⠭ 뢮                         
ॣ 訡                 
⥫쭮 ன⢮         
ன⢮  

 䠩 뢠 ⥪ ⮬᪨  ।  -
 main      㬮砭      ନ
(stdin - , stdout,stderr - ࠭), ᫥⥫-
  (stdaux)  ਭ (stdprn). stdin  stdout  
 ७祭   ப ᪠  ணࠬ  
 㣨 䠩


>test.exe  <a.dat >c:\xxx\b.dat 
	      		 䠩 stdout
	       䠩 stdin

 㭪樨 ᨬ쭮, 筮    ଠ஢
-뢮  ਠ  䠩 ⠭⭮  -
뢮.


7. 㭪樨 - 䠩

Ŀ
 ० ࠡ  䠩 Ŀ			
  䠩 Ŀ					
		               			
 FILE *fopen(char *name, char *mode)	-  䠩	
  							
   㪠⥫  ਯ 䠩  NULL		
							
 int	fclose(FILE *fd)		-  䠩	
  							
   0  EOF (訡)				
							
 int	fcloseall(void)			-  	
  							
   ᫮  䠩  EOF			
							
 FILE *freopen(char *name, char *mode, FILE *fd)	
  			-    ୮ 	
							
 FILE *tmpfile(void)   - ᮧ   ६	
			  䠩  㭨 	


 ப ० ࠡ  䠩


   ⢨ 䠩 Ŀ
    砫쭮 祭 㪠⥫  䠩 Ŀ   
	    祭  ⨨ Ŀ      
                     Ŀ         
   		       ⥭ Ŀ            
Ŀ
 r   ⥭e   	             +  -  -  0  - 
 w                           -  +  +  0  + 
 a    ()           -  +  + EOF + 
 r+  ⥭   ()  +  +  -  0  - 
 w+  ⥭   ()  +  +  +  0  + 
 a+  ⥭   ()  +  +  - EOF + 
Ĵ
 b        ᫥ r,w,a,r+,w+,a+         
 t   ⥪              .....			



8. 㭪樨 ᨬ쭮 -뢮

 ᨬ  Ŀ					
 int	fgetc(FILE *fd)	-  㪠 䠩		
 int	getc(FILE *fd)					
 int	fgetchar(void)	- ⠭ 		
 inc	getchar(void)					
    ᨬ  EOF				
 int	ungetc(int ch, FILE *fd) -  ᨬ	
			   䠩 (୮ ⠥)	

 ᨬ 뢮 Ŀ					
 int	fputc(int ch,FILE *fd)	-  㪠 䠩	
 int	putc(int ch, FILE *fd)				
 int	fputchar(int ch)	- ⠭ 뢮	
 inc	putchar(int ch)					
    ᨬ  EOF				


ਬ砭:  㭪樨  믮   ⤥쭮  ᨬ-
, 筮  ⢫    ⠭⭮  ०  -
筮  ,  ন  樮   ⥬
(""-   ᨬ,  ।஢  ப).
⮬   ⥪  ப    ⮫쪮  ,
᫥  ᨬ " ப",   㦥  ⥬  뤠
 ணࠬ ᨬ쭮.   ॠ஢ -
ࠬ   ᨬ  ⪠  -  -
 짮  ⠭묨  ⥪  (ਬ,
conio.h)

9. 㭪樨 筮 -뢮

   Ŀ
 char *gets(char *str)		  - ⠭ 	
 char *fgets(char *str,   int n, FILE *fd)		
   str  NULL(訡)  	  -  㪠 䠩	
 ᨬ쭠  ப 	    			

  뢮 Ŀ
 char *puts(char *str)		  - ⠭ 	
 char *fputs(char *str, FILE *fd)			
   str  NULL(訡)  	  -  㪠 䠩	


ਬ砭:  -뢮  ப 㭪樨 ᯮ 
 ⢥ ⠭⭮ ࠭⥫ ப     ᨬ-
  '\0'.      ப  '\n'  㭨⮦   
⠭⭮ -뢮 (gets -   뢠    ப,
 puts ⮬᪨    뢮)    ࠭
 ப  -뢮   㪠  䠩  (fgets
- 뢠  ப, fputs - 뢮 騩    ப
(ᠬ    )).

10. 㭪樨 ଠ஢ -뢮


 ଠ஢ 뢮 Ŀ
 int printf(char *format,...) 			 	
				- ⠭ 뢮	
 int fprintf(FILE *fd, char *format,...)		
				-  㪠 䠩		 
 int sprintf(char *str, char *format,...)		
  				- ப  	
   ᫮ 뢥 ⮢  EOF			

 ଠ஢  Ŀ
 int scanf(char *format,...) 			 	
				- ⠭ 	
 int fscanf(FILE *fd, char *format,...)		
				-  㪠 䠩		 
 int sscanf(char *str, char *format,...)		
  				- ப  	
   ᫮ 䠪᪨ ࠬ஢,  	
        祭,  EOF			


ଠ⭠ ப । ⢮   ⨯  䠪᪨
ࠬ஢  ६ ᯨ᪠.  ᫥⥫쭮  ᨬ-
,   "%" (ᯥ䨪 ଠ), । ⨯
 ଠ -뢮  ।  䠪᪮  ࠬ.
 ⮬  㭪  ଠ஢  뢮    ᨬ
ଠ⭮ ப 뢮  室 䠩    ᪫祭
ᯥ䨪権   ଠ,         祭ﬨ
ᮮ⢥ 䠪᪨ ࠬ஢.   㭪  ଠ-
஢ 뢮 ⨯ ࠬ  ᮢ   -
  ᯥ䨪樨,   㭪  ଠ⭮    -  
㪠⥫   ⨯ (    ।  
६,    祭). 


        ଠ⭠ ப Ŀ Ŀ䠪᪨
printf("....%***...%***...%***",p1,p2,p3); ࠬ
	            	    >>ĳĳ     ६
                    >>ĳ          ᯨ᪠
              >>
		        
䨪 ଠ -뢮 䠪᪮ ࠬ
([]  易⥫ )

% [䫠][ਭ][.筮][䨪] ⨯ Ŀ
                           "F" far-㪠⥫         
                           "N" near-㪠⥫        
                           "h" ࠬ ⨯ short   
                           "l" ࠬ ⨯ long    
                                  double ( scanf)
                  "0"  ஡                
                   n    n  ᫥ 窨   
                   *   ᫥騬 䠪᪨  
                        ࠬ஬ 㭪樨              
          n   쭠 ਭ  n ( 
               樨 - ஡)                       
          0n   ,  樨 - 㫨      
          "*"  ᫥騬 䠪᪨           
                ࠬ஬ 㭪樨                       
      "-" ࠢ                  
           ( 㬮砭 -  ࠢ)                   
      "+" 뢮  ᫠ ("+"  "-")            
      " " 뢮 ஡ । ⥫ ᫮   
      "#" 뢮 䨪 ⥬ ᫥     
     	    ("0" -쬥筠, "0x" -⭠筠,  
     	    "." - float)            char   "c" Ĵ                              
		    	 筮    int    "d" Ĵ
			                  "i" Ĵ
			 筮 unsigned  "u" Ĵ
		       쬥筮 unsigned  "o" Ĵ
		  ⭠筮 unsigned  "x" Ĵ
	       묨  ய묨 ..F  "X" Ĵ
	      	float  ଠ ***.***	      "f" Ĵ
	      	float  ଠ *.***e***     "e" Ĵ
	      	float  ଠ *.***E***     "E" Ĵ
 ᨬ	float ("e"  "f")           "g" Ĵ
 筮	float ("E"  "F")	      "G" Ĵ
		char *			      "s" 
		(  筮   \n, 뢮 
		筮,  \n   \0)

10. 㭪樨 樮஢  筮 -뢮

 樮஢ Ŀ
 void rewind(FILE *fd)		- ⠭ 㪠⥫ 	  
				   䠩  砫	  
 long ftell(FILE *fd)		-  祭 	  
  				  㪠⥫  䠩	  
     ()  -1L			  
 int  fseek(FILE *fd, long pos, int mode) - ⠭	  
                                   㪠⥫  䠩  
       ()          
   ᯮᮡ 樮஢                     
   SEEK_SET(0) -  砫                              
   SEEK_CUR(1) -  ⥪饩 樨                     
   SEEK_END(2) -   䠩                         
   0  EOF (訡)				  
 int fgetpos(FILE *fd, long *ppos) -  ftell,fseek 
 int fsetpos(FILE *fd, long *ppos)    㪠⥫, ࠧ-  
				      饭  	  

  -뢮 Ŀ
 int  fread(void *buff, int size, int nrec, FILE *fd)	  
 int fwrite(void *buff, int size, int nrec, FILE *fd)	  
  			  	     ᫮ ᥩ	  
                        ࠧ 	  
                         
   ᫮ (뢥) ᥩ	  

