CÓïÑÔÎļþÏà¹Ø²Ù×÷
CÓïÑÔÎļþ²Ù×÷½Ó´¥ºÜ¾ÃÁË£¬Ò»Ö±Ã»ÓÐ×ܽáÏà¹ØÄÚÈÝ£¬½ñÌìÓõ½Á˾ÍÈ¥ÕÒÁËÕÒÏà¹ØÄÚÈÝ¡£
ÔÚANSI CÖУ¬¶ÔÎļþµÄ²Ù×÷·ÖΪÁ½ÖÖ·½Ê½£¬¼´Á÷ʽÎļþ²Ù×÷ºÍI/OÎļþ²Ù×÷
typedef struct {
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File descriptor */
unsigned char hold; /* Ungetc char if no buffer */
int bsize; /* Buffer size */
unsigned char _FAR *buffer; /* Data transfer buffer */
unsigned char _FAR *curp; /* Current active pointer */
unsigned istemp; /* Temporary file indicator */
short token; /* Used for validity checking */
} FILE; /* This is the FILE object */
VCÖÐFILEµÄ¶¨ÒåΪ
struct _iobuf {
char *_ptr; //ÎļþÊäÈëµÄÏÂÒ»¸öλÖÃ
int _cnt; //µ±Ç°»º³åÇøµÄÏà¶ÔλÖÃ
char *_base; //Ö¸»ù´¡Î»ÖÃ(¼´ÊÇÎļþµÄÆäʼλÖÃ)
int _flag; //Îļþ±êÖ¾
int _file; //ÎļþµÄÓÐЧÐÔÑéÖ¤
int _charbuf; //¼ì²é»º³åÇø×´¿ö,Èç¹ûÎÞ»º³åÇøÔò²»¶ÁÈ¡
int _bufsiz; //ÎļþµÄ´óС
char *_tmpfname; //ÁÙʱÎļþÃû
};
typedef struct _iobuf FILE;
FILEÕâ¸ö½á¹¹°üº¬ÁËÎļþ²Ù×÷µÄ»ù±¾ÊôÐÔ£¬¶ÔÎļþµÄ²Ù×÷¶¼ÒªÍ¨¹ýÕâ¸ö½á¹¹µÄÖ¸ÕëÀ´½øÐС£
Îļþ´ò¿ªº¯Êýfopen
¡¡¡¡fopenº¯ÊýÓÃÀ´´ò¿ªÒ»¸öÎļþ£¬Æäµ÷ÓõÄÒ»°ãÐÎʽΪ£º
ÎļþÖ¸ÕëÃû=fopen(ÎļþÃû£¬Ê¹ÓÃÎļþ·½Ê½) ÆäÖУ¬“ÎļþÖ¸ÕëÃû”±ØÐëÊDZ»ËµÃ÷ΪFILE ÀàÐ͵ÄÖ¸Õë±äÁ¿£¬“ÎļþÃû”ÊDZ»´ò¿ªÎļþµÄÎļþÃû¡£
“ʹÓÃÎļþ·½Ê½”ÊÇÖ¸ÎļþµÄÀàÐͺͲÙ×÷ÒªÇ󡣓ÎļþÃû”ÊÇ×Ö·û´®³£Á¿»ò×Ö·û´®Êý×é¡£ÀýÈ磺
FILE *fp£»
fp=("file a","r");
ÆäÒâÒåÊÇÔÚµ±Ç°Ä¿Â¼Ï´ò¿ªÎļþfile a£¬ Ö»ÔÊÐí½øÐГ¶Á”²Ù×÷£¬²¢Ê¹fpÖ¸Ïò¸ÃÎļþ¡£
ÓÖÈ磺
FILE *fphzk
fphzk=("c:\hzk16',"rb")
ÆäÒâÒåÊÇ´ò¿ªCÇý¶¯Æ÷´ÅÅ̵ĸùĿ¼ÏµÄÎļþhzk16£¬ ÕâÊÇÒ»¸ö¶þ½øÖÆÎļþ£¬Ö»ÔÊÐí°´¶þ½øÖÆ·½Ê½½øÐжÁ²Ù×÷¡£Á½¸ö·´Ð±Ïß“\ ”ÖеĵÚÒ»¸ö±íʾתÒå×Ö·û£¬µÚ¶þ¸ö±íʾ¸ùĿ¼¡£Ê¹ÓÃÎļþµÄ·½Ê½¹²ÓÐ12ÖÖ£¬ÏÂÃæ¸ø³öÁËËüÃǵķûºÅºÍÒâÒå¡£
ÎļþʹÓ÷½Ê½ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡Òâ Òå
“rt”¡¡¡¡¡¡¡¡¡¡¡¡Ö»¶Á´ò¿ªÒ»¸öÎı¾Îļþ£¬Ö»ÔÊÐí¶ÁÊý¾Ý
“wt&r
Ïà¹ØÎĵµ£º
11.1 ¶¨ÒåÒ»¸ö½á¹¹µÄÒ»°ãÐÎʽ
ÔÚʵ¼ÊÎÊÌâÖУ¬Ò»×éÊý¾ÝÍùÍù¾ßÓв»Í¬µÄÊý¾ÝÀàÐÍ¡£ÀýÈ磬ÔÚѧÉúµÇ¼Ç±íÖУ¬ÐÕÃûӦΪ×Ö·ûÐÍ£»Ñ§ºÅ¿ÉΪÕûÐÍ»ò×Ö·ûÐÍ£»ÄêÁäӦΪÕûÐÍ£»ÐÔ±ðӦΪ×Ö·ûÐÍ£»³É¼¨¿ÉΪÕûÐÍ»òʵÐÍ¡£ ÏÔÈ»²»ÄÜÓÃÒ»¸öÊý×éÀ´´æ·ÅÕâÒ»×éÊý¾Ý¡£ÒòΪÊý×éÖи÷ÔªËØµÄÀàÐͺͳ¤¶È¶¼±ØÐëÒ»Ö£¬ÒÔ±ãÓÚ±àÒëϵͳ´¦Àí¡ ......
±¾³ÌÐò¿ÉÒÔ¶ÁÈ¡.wavÎļþ£¬È»ºó½øÐв¥·Å¡£
È·ÈÏ·½·¨£ºcat /etc/sndstat£¬Èç¹ûÏÔʾÎÞ´ËÉ豸£¬ÔòûÓа²×°Çý¶¯¡£
#include <unistd.h>#include <fcntl.h>#include <sys/types.h>#include <sys/ioctl.h>#include <stdlib.h>#include <stdio.h>#include&nbs ......
¿´µ½Õâ¸öÃæÊÔÌâ,¹À¼ÆºÜ¶à¸ÕѧCÖ¸ÕëµÄͬѧ¶¼»á¸ã´í.
void GetMemory(char *p)
{
// ´«µÝ½øÀ´µÄµÄֵʹµÃ*p==NULL
// ÕâÀïÐ޸ĵÄÊÇÕâ¸öº¯ÊýÄÚµÄÁÙʱָÕë±äÁ¿pµÄÖµ
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
// ´«µÝ½øÈ¥µÄÊÇstrµÄÖµNULL
GetMemory(str);
// ÕâÀïstrÖ¸Õë² ......
µ÷Óú¯Êýʱ£¬¼ÆËã»ú³£ÓÃÕ»À´´æ´¢´«µÝ¸øº¯ÊýµÄ²ÎÊý¡£
Õ»ÊÇÒ»ÖÖÏȽøºó³öµÄÊý¾Ý½á¹¹£¬Õ»ÓÐÒ»¸ö´æ´¢Çø¡¢Ò»¸öÕ»¶¥Ö¸Õë¡£Õ»¶¥Ö¸ÕëÖ¸Ïò¶ÑÕ»ÖеÚÒ»¸ö¿ÉÓõÄÊý¾ÝÏ±»³ÆÎªÕ»¶¥£©¡£Óû§¿ÉÒÔÔÚÕ»¶¥ÉÏ·½ÏòÕ»ÖмÓÈëÊý¾Ý£¬Õâ¸ö²Ù×÷±»³ÆÎªÑ¹Õ»(Push)£¬Ñ¹Õ»ÒÔºó£¬Õ»¶¥×Ô¶¯±ä³ÉмÓÈëÊý¾ÝÏîµÄλÖã¬Õ»¶¥Ö¸ÕëÒ²ËæÖ®Ð޸ġ£Óû§Ò²¿ÉÒÔ´Ó¶ÑÕ»ÖÐ ......
ÓÉÓÚC++±àÒëÆ÷ÐèÒªÖ§³Öº¯ÊýµÄÖØÔØ£¬»á¸Ä±äº¯ÊýµÄÃû³Æ£¬Óë±ê×¼CÖк¯ÊýÃû³Æ²»Í¬¡£È»¶ødllµÄµ¼³öº¯Êýͨ³£ÊDZê×¼C¶¨ÒåµÄ£¬Èñê×¼C±àдµÄdllº¯Êý¶¨ÒåÔÚCºÍC++±àÒëÆ÷϶¼ÄܱàÒëͨ¹ý£¬Í¨³£»áʹÓÃÒÔϵĸñʽ£º£¨Õâ¸ö¸ñʽÔںܶà³ÉÊìµÄ´úÂëÖкܳ£¼û£©
#ifdef __cplusplus extern "C"
{
#endif
// ......