±ê×¼ C I/O
±ê×¼ C I/O
º¯ÊýÁÐ±í£º
clearerr() Çå³ý´íÎó
fclose() ¹Ø±ÕÒ»¸öÎļþ
feof() Èç¹ûµ½´ïÎļþβ(end-of-file)·µ»Ø"True"(Õæ)
ferror() ¼ì²éÒ»¸öÎļþ´íÎó
fflush() ÊéдÊä³ö»º´æµÄÄÚÈÝ
fgetc() ´ÓÁ÷»ñÈ¡Ò»¸ö×Ö·û
fgetpos() »ñÈ¡ÎļþλÖÃÖ¸Õë
fgets() ´ÓÒ»¸öÁ÷»ñÈ¡Ò»´®×Ö·û
fopen() ´ò¿ªÒ»¸öÎļþ
fprintf() ´òÓ¡¸ñʽ»¯µÄÊä³öµ½Ò»¸öÎļþ
fputc() дһ¸ö×Ö·ûµ½Ò»¸öÎļþ
fputs() дһ¸ö×Ö·û´®µ½Ò»¸öÎļþ
fread() ´ÓÒ»¸öÎļþ¶ÁÈ¡
freopen() ÓÃÒ»¸ö²»Í¬µÄÃû³Æ´ò¿ªÒ»¸ö´æÔÚµÄÁ÷
fscanf() ´ÓÒ»¸öÎļþ¶ÁÈ¡Ò»¸ö¸ñʽ»¯µÄÊäÈë
fseek() ÔÚÎļþÖÐÒƶ¯µ½Ò»¸öÖ¸¶¨µÄλÖÃ
fsetpos() ÔÚÒ»¸öÎļþÖÐÒƶ¯µ½Ò»¸öÖ¸¶¨µÄλÖÃ
ftell() ·µ»Øµ±Ç°ÎļþµÄλÖÃÖ¸Õë
fwrite() дÈëÒ»¸öÎļþ
getc() ´ÓÒ»¸öÎļþ¶ÁÈ¡Ò»¸ö×Ö·û
getchar() ´ÓSTDIN(±ê×¼ÊäÈë)¶ÁÈ¡Ò»¸ö×Ö·û
gets() ´ÓSTDIN(±ê×¼ÊäÈë)¶ÁÈ¡Ò»¸ö×Ö·û´®
perror() ÏÔʾµ±Ç°´íÎóµÄÒ»¸ö×Ö·û´®°æ±¾µ½STDERR(±ê×¼´íÎóÊä³ö)
printf() д¸ñʽ»¯µÄÊä³öµ½STDOUT(±ê×¼Êä³ö)
putc() дһ¸ö×Ö·ûµ½Ò»¸öÁ÷
putchar() дһ¸ö×Ö·ûµ½STDOUT(±ê×¼Êä³ö)
puts() дһ¸ö×Ö·û´®µ½STDOUT(±ê×¼Êä³ö)
remove() Çå³ýÒ»¸öÎļþ
rename() ÖØÃüÃûÒ»¸öÎļþ
rewind() Òƶ¯ÎļþλÖÃÖ¸Õëµ½Ò»¸öÎļþµÄ¿ªÊ¼´¦
scanf() ´ÓSTDIN(±ê×¼ÊäÈë)¶ÁÈ¡¸ñʽ»¯ÊäÈë
setbuf() ÉèÖÃÒ»¸öÖ¸¶¨Á÷µÄ»º³åÇø
setvbuf() ÉèÖÃÒ»¸öÖ¸¶¨Á÷µÄ»º³åÇøºÍ´óС
sprintf() д¸ñʽ»¯µÄÊä³öµ½»º³åÇø
sscanf() ´ÓÒ»¸ö»º³åÇø¶ÁÈ¡¸ñʽ»¯µÄÊäÈë
tmpfile() ·µ»ØÒ»¸öµ½Ò»¸öÁÙʱÎļþµÄÖ¸Õë
tmpnam() ·µ»ØÒ»¸ö¶ÀÌصÄÎļþÃû
ungetc() °ÑÒ»¸ö×Ö·û·Å»ØÒ»¸öÁ÷
vprintf, vfprintf, vsprintf дÓòÎÊýÁбí¸ñʽ»¯Êä³ö
/////////////////////////////////////////////////////////////////////////////////////////
clearerr
Óï·¨:
#include <stdio.h>
void clearerr( FILE *stream );
clearerrº¯ÊýÖØÖôíÎó±ê¼ÇºÍ¸ø³öµÄÁ÷µÄEOFÖ¸Õë. µ±·¢Éú´íÎóʱ,Äã¿ÉÒÔʹÓÃperror()ÅжÏʵ¼ÊÉÏ·¢ÉúÁ˺ÎÖÖ´íÎó.
ferror
Óï·¨:
#include <stdio.h>
int ferror( FILE *stream );
ferror()º¯Êý¼ì²éstream(Á÷)ÖеĴíÎó, Èç¹ûû·¢Éú´íÎó·µ»Ø0,·ñÔò·µ»Ø·ÇÁã. Èç¹û·¢Éú´íÎó, ʹÓÃperror()¼ì²â·¢Éúʲô´íÎó.
perror
Óï·¨: #include <stdio.h>
void perror( const
Ïà¹ØÎĵµ£º
¡¡¡¡Ëùν“Îļþ”ÊÇÖ¸Ò»×éÏà¹ØÊý¾ÝµÄÓÐÐò¼¯ºÏ¡£ Õâ¸öÊý¾Ý¼¯ÓÐÒ»¸öÃû³Æ£¬½Ð×öÎļþÃû¡£ ʵ¼ÊÉÏÔÚÇ°ÃæµÄ¸÷ÕÂÖÐÎÒÃÇÒѾ¶à´ÎʹÓÃÁËÎļþ£¬ÀýÈçÔ´³ÌÐòÎļþ¡¢Ä¿±êÎļþ¡¢¿ÉÖ´ÐÐÎļþ¡¢¿âÎļþ (Í·Îļþ)µÈ¡£Îļþͨ³£ÊÇפÁôÔÚÍⲿ½éÖÊ(Èç´ÅÅ̵È)Éϵģ¬ ÔÚʹÓÃʱ²Åµ÷ÈëÄÚ´æÖÐÀ´¡£´Ó²»Í¬µÄ½Ç¶È¿É¶ÔÎļþ×÷²»Í¬µÄ·ÖÀà¡£´ÓÓû ......
ºÃ¾ÃûÉÏÀ´ÁË...Óеã¶Ô²»Æð×Ô¼ºµÄÁ¼ÐÄ...
»°ËµÕâ¶Îʱ¼ä¿ì¸øÕâ¸öº¯Êý¸ãËÀÁË...
ÎÒÕÒÕÒ...ÎÒÕÒÎÒÕÒ...ÎÒ¾ÍÊÇÒª°ÑËü¸ø¸ãÃ÷°×ÁË...
»°ËµÇ°¶Îʱ¼äÄǸöËÀÈËËÄÔòÔËËãÒ²°Ñ×Ô¼º¸ãµÃ°ëËÀÁË...¶î...ÏÖÔÚ»¹ÔÚÍ£¹¤×´Ì¬...ÔÎËÀ....
ÔÙ˵scanf(),ÉÏÍøÊÇ¿ÉÒÔÕÒµ½Ð©¶«Î÷....µ«ÊǶ¼²»ÔõôÃ÷°×...´òËã×Ô¼º¸ãÃ÷°×ÁËÔÙÉÏÀ´Ð´¸öÏêϸµãµÄ°É...
......
cÔËÐпâmalloc·ÖÅäµÄÄÚ´æÔÚÄÄÀïÄØ£¬Ê×ÏÈÉÏ´úÂ룺
//ÄÚ´æ´óСÁ¬½ÓÆ÷½«ÆäµØÖ·Ö¸Ïò-heapÑ¡Ïî
extern _DATA_ACCESS int _SYSMEM_SIZE;
//ÄÚ´æÇøÓò
#pragma DATA_SECTION(_sys_memory, ".sysmem")
far PACKET _sys_memory[1] = { ((size_t)&_SYSMEM_SIZE) - sizeof(PACKET), 0 };
  ......
Ò»¸öÓÉC/C++±àÒëµÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·ÖΪÒÔϼ¸¸ö²¿·Ö
1¡¢Õ»Çø£¨stack£©— ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å
£¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
2¡¢¶ÑÇø£¨heap£© — Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å
£¬
Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøʱ¿ÉÄÜÓÉOS»ØÊÕ ¡£×¢ÒâËüÓëÊý¾Ý½á¹¹ÖеĶÑÊÇÁ½»ØÊ£¬·ÖÅä·½ ......
ÒÔ i2c-mpc.c Çý¶¯Ä£¿éΪÀý
fsl_i2c_init -> of_register_platform_driver -> of_register_driver -> driver_register -> bus_add_driver -> driver_attach
-> bus_for_each_dev -> __driver_attach -> driver_probe_device -> really_probe -> drv->probe(dev); ......