VC函数详解

tmpd

贡献于2012-06-22

字数:95520 关键词: C/C++开发

VC 函 数 详 解 函数名 : _access 所属库名: 函数功能: 检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否则函数返回-1 使用方法: int _access( const char *path, int mode ); 范 例: 这个例子使用-access函数来检查文件access.c是否是可写的: include include include void main( void ) { if( (_access( "ACCESS.C", 0 )) != -1 ) { printf( "File ACCESS.C exists\n" ); if( (_access( "ACCESS.C", 2 )) != -1 ) 函数名 : _alloca 所属库名: 函数功能: 在堆栈上分配一个内存空间,返回一个指向该内存空间地址的void型指针 使用方法: void *_alloca( size_t size ); 范 例: 在堆栈上分配一个50字节的内存空间: Int *pointer; size_t Size=100; Pointer=(int *)_alloca(Size); 函数名 : _atoi64 所属库名: 函数功能: 把一个字符串转换为_int64型 使用方法: __int64 _atoi64( const char *string ); 范 例: 和atof函数类似 函数名 : _beginthread 所属库名: 函数功能: 创建一个线程 使用方法: unsigned long _beginthread( void( __cdecl *start_address )( void * ), unsigned stack_size, void *arglist ); 共149页 第页 VC 函 数 详 解 unsigned long _beginthreadex( 范 例: 这个例子显示了_beginthread函数的基本用法,FirstThread是线程的起始地址,数字20是线程的堆栈空间,常量NULL是线程的参数表: _beginthread(FirstThread,20,NULL); 函数名 : _beginthreadex 所属库名: 函数功能: 创建一个线程 使用方法: unsigned long _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ), void *arglist, unsigned initflag, unsigned *thrdaddr ); 范 例: 和_beginthread函数类似 函数名 : _c_exit 所属库名: 函数功能: 进行清除操作(释放已占用的内存空间等),但是不终止程序 使用方法: void _c_exit( void ); 范 例: 和_cexit函数类似 函数名 : _cabs 所属库名: 函数功能: 计算一个复数的绝对值 使用方法: double _cabs( struct _complex z ); 范 例: 把一个复数ComplexNumber赋给变量d:struct _complex number = { 3.0, 4.0 }; double d; d = _cabs( number ); 函数名 : _cexit 所属库名: 函数功能: 进行清除操作(释放已占用的内存空间等),但是不终止程序 使用方法: void _cexit( void ); 范 例: 共135页 第页 VC 函 数 详 解 这个例子中如果用户按下y键,则进行清除操作: int button; _cputs("Yes or No?"); button=_getch(); if(toupper(button)=='y') _cexit(); 函数名 : _cgets 所属库名: 函数功能: 从键盘得到一个字符串 使用方法: char *_cgets( char *buffer ); 范 例: 数字80用来限制屏幕上每行最多只能输入80个字符: char *string; char Buffer[82]={80}; string=_cgets(Buffer); 函数名 : _chdir 所属库名: 函数功能: 改变当前的工作目录,若成功则返回0,否则返回-1, 使用方法: int _chdir( const char *dirname ); 范 例: 这个例子中实现了把当前目录改为d:\visual c++: _chdir("d;\\visual c++"); 函数名 : _chdrive 所属库名: 函数功能: 改变当前的工作驱动器 使用方法: int _chdrive( int drive ); 范 例: 这个例子中实现了检查计算机中有多少个可用的驱动器(PC机最多可以装26个驱动器): int Drive=1; while(Drive<=26) {if(_chdrive(Drive)==0) printf("%c\n",Drive+'A'-1); Drive++;} 函数名 : _chgsign 所属库名: 函数功能: 改变一个double型数的正负号(正变为负,负变为正) 使用方法: double _chgsign( double x ); 范 例: 给double型变量x赋值为-12345.678: double x; x=_chgsign(12345.678); 共149页 第页 VC 函 数 详 解 函数名 : _chmod 所属库名: 函数功能: 改变文件的读写许可设置,如果改变成功返回0,否则返回-1 使用方法: int _chmod( const char *filename, int pmode ); 范 例: 这个例子中实现了把文件sample.txt设置为只读文件: if(_chmod("sample.txt",_S_IREAD)==-1) cout<<"文件sample.txt不存在"; else cout<<"文件sample.txt变为只读文件"; 函数名 : _chsize 所属库名: 函数功能: 改变文件的字节长度,如果成功返回0,否则返回-1 使用方法: int _chsize( int handle, long size ); 范 例: 和_chmod函数类似 函数名 : _clear87 所属库名: 函数功能: 返回并且清除浮点状态字 使用方法: unsigned int _clear87( void ); 范 例: 这个例子中变量x是float型的,把一个double型的值赋给它时可能会引起数据的溢出,这个时候我们使用_clear87函数来检查溢出的情况: float x; double y=1.4e-35; x=y; printf("浮点状态字%x代表数据的溢出\n",_clear87()); 函数名 : _clearfp 所属库名: 函数功能: 返回并且清除浮点状态字 使用方法: unsigned int _clearfp( void ); 范 例: 和_clear87函数类似 共135页 第页 VC 函 数 详 解 函数名 : _close 所属库名: 函数功能: 关闭文件,如果成功返回0,否则返回-1 使用方法: int _close( int handle ); 范 例: 这个例子中先以只读方式打开文件sample.txt,然后再把它关闭: int Handle; Handle= _open(" c:\\sanmple.txt",_O_RDONLY); if(Handle==-1) perror("出错!"); else {cout<<"文件已经打开"; _close(Handle); } 函数名 : _commit 所属库名: 函数功能: 把某个文件的数据直接存储到磁盘上,如果成功返回0,否则返回-1 使用方法: int _commit( int handle ); 范 例: 这个例子中可以把文件的数据在操作中及时写入磁盘,可以避免一些以外情况导致文件的数据丢失: int Handle; if( (Handle=_open("sample.txt",_O_RDWR))!=-1) { ...... _commit(Handle); ...... _close(Handle); 函数名 : _control87 所属库名: 函数功能: 返回或者设置浮点控制字 使用方法: unsigned int _control87( unsigned int new, unsigned int mask ); 范 例: _control87函数可以控制浮点类型数据的精度: double Value=0.1; _control87(_PC_24,MCW_PC); printf("24位精度:%f\n",Value); _control87(_CW_DEFAULT,0xFFFFF); printf("缺省精度:%f\n",Value); 函数名 : _controlfp 所属库名: 函数功能: 返回或者设置浮点控制字 使用方法: unsigned int _controlfp( unsigned int new, unsigned int mask ); 范 例: 和_control87函数类似 共149页 第页 VC 函 数 详 解 函数名 : _copysign 所属库名: 函数功能: 以第二个参数y的符号(正或负)返回第一个参数x 使用方法: double _copysign( double x, double y ); 范 例: 这个例子中变量a的值为-0.4567: double x=0.4567; double y=-0.123; double a; a=_copysign(x,y); 函数名 : _cprintf 所属库名: 函数功能: 用指定的格式在显示器上输出信息 使用方法: int _cprintf( const char *format [, argument] ... ); 范 例: int I = -16, h = 29; unsigned u = 62511; char c = 'A'; char s[] = "Test";_cprintf( "%d %.4x %u %c %s\r\n", I, h, u, c, s ); 函数名 : _cputs 所属库名: 函数功能: 在显示器上输出一个字符串,若成功则返回0,否则返回一个非0值 使用方法: int _cputs( const char *string ); 范 例: 这个例子中实现了在显示器上显示“hello!”: char *p="hello!"; _cputs(p); 函数名 : _creat 所属库名: 函数功能: 创建一个新的文件,若成功返回0,否则返回-1 使用方法: int _creat( const char *filename, int pmode ); 范 例: 这个例子中实现了创建一个新文件sample.txt: int Handle; Handle=_creat( "sample.txt",_S_IREAD | _S_IWRITE); 共135页 第页 VC 函 数 详 解 函数名 : _cscanf 所属库名: 函数功能: 从键盘上输入已经指定格式的数据 使用方法: int _cscanf( const char *format [, argument] ... ); 范 例: 这个例子中%d就是格式控制: int x; _csanf("%d",&x); 函数名 : _cwait 所属库名: 函数功能: 某个进程开始进入等待状态直到另一个进程终止为止 使用方法: int _cwait( int *termstat, int procHandle, int action ); 范 例: 这个例子中若变量x为2将显示两个carl: struct process{ int id; char name[40]; } process[3]={{0,"ann"},{0,"beth"},{0,"carl"}}; void main(int argc,char *argv[]) { int index,result; if(argc==1) {for (index=0; index<3;index++) process[index].id=_spawnl(_P_ 函数名 : _dup 所属库名: 函数功能: 为一个已经打开的文件建立第二个句柄 使用方法: int_dup( int handle ); 范 例: 这个例子中给已经有句柄的标准输出设备(stdout)建立第二个句柄Monitor ,然后再恢复原来的句柄: int Monitor; Monitor = _dup(1); ...... _dup2(Monitor,1); 函数名 : _dup2 所属库名: 函数功能: 为一个文件重新分配句柄 使用方法: int _dup2( int handle1, int handle2 ); 范 例: 请参看_dup函数 共149页 第页 VC 函 数 详 解 函数名 : _ecvt 所属库名: 函数功能: 把一个double型的数据转换为一个字符串 使用方法: char *_ecvt( double value, int count, int *dec, int *sign ); 范 例: 这个例子中变量Prcision存储数字的精度,变量Decimal存储小数点的位置,变量Sign存储数字的符号: char *String; double Value =2.143554; int Precision =10, Decimal, Sign; String= _ecvt(Value,Precision,&Decimal,&sign); 函数名 : _endthread 所属库名: 函数功能: 终止_beginthread函数创建的某个线程 使用方法: void _endthread( void ); 范 例: 请参看_beginthread函数 函数名 : _endthreadex 所属库名: 函数功能: 终止_beginthread函数创建的某个线程 使用方法: void _endthreadex( unsigned retval ); 范 例: 和_endthread函数类似 函数名 : _eof 所属库名: 函数功能: 测试文件指针是否指向文件尾部,若指向文件尾部返回0,否则返回-1 使用方法: int _eof( int handle ); 范 例: 这个例子中打开文件eof.c,每次读取10个字节,直到全部字节被读完为止,然后显示文件的长度:void main( void ){ int fh, count, total = 0; char buf[10]; if( (fh = _open( "eof.c", _O_RDONLY )) == - 1 ) { perror( "Open failed"); exit( 1 ); } while( !_eof( fh ) ) { if( (count = _read( f 共135页 第页 VC 函 数 详 解 函数名 : _execl 所属库名: 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _execl( const char *cmdname, const char *arg0, ... Const char *argn, NULL ); 范 例: 这个例子介绍了以_exec开头的8个函数的用法: char *my_env[] = { "THIS=environment will be", "PASSED=to new process by", "the EXEC=functions", NULL}; void main() { char *args[4], prog[80]; int ch; printf( "Enter name of program to exec: " ); gets( prog 函数名 : _execle 所属库名: 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _execle( const char *cmdname, const char *arg0, ... Const char *argn, NULL, const char *const *envp ); 范 例: 请参看_execl函数 函数名 : _execlp 所属库名: 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _execlp( const char *cmdname, const char *arg0, ... Const char *argn, NULL ); 范 例: 请参看_execl函数 函数名 : _execlpe 所属库名: 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _execlpe( const char *cmdname, const char *arg0, ... Const char *argn, NULL, const char *const *envp ); 范 例: 请参看_execl函数 共149页 第页 VC 函 数 详 解 函数名 : _execv 所属库名: 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _execv( const char *cmdname, const char *const *argv ); 范 例: 请参看_execl函数 函数名 : _execve 所属库名: 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _execve( const char *cmdname, const char *const *argv, const char *const *envp ); 范 例: 请参看_execl函数 函数名 : _execvp 所属库名: 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _execvp( const char *cmdname, const char *const *argv ); 范 例: 请参看_execl函数 函数名 : _execvpe 所属库名: 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _execvpe( const char *cmdname, const char *const *argv, const char *const *envp ); 范 例: 请参看_execl函数 函数名 : _exit 所属库名: or 函数功能: 进行清除操作(释放已占用的内存空间等),并且终止当前进程 使用方法: void _exit( int status ); 共135页 第页 VC 函 数 详 解 范 例: 和exit函数类似 函数名 : _expand 所属库名: 函数功能: 改变某个内存区域的字节数 使用方法: void *_expand( void *memblock, size_t size ); 范 例: 这个例子中把buffer从512个字节扩展到了1024个字节: char *buffer; buffer=(char *)calloc(512,sizeof(char)); cout<<"内存区域为512个字节!"< 函数功能: 关闭已经打开的所有数据流,若成功则返回被关闭的数据流的个数,否则返回eof 使用方法: int _fcloseall( void ); 范 例: 和fclose函数类似 函数名 : _fcvt 所属库名: 函数功能: 把一个double型的数据转换为一个字符串 使用方法: char *_fcvt( double value, int count, int *dec, int *sign ); 范 例: 和_ecvt函数类似 函数名 : _fdopen 所属库名: 函数功能: 把一个以低级I/O方式打开的文件与某个数据流联系起来,即将这个文件“数据流化”,若成功则返回一个指向该数据流的指针,否则返回NULL 使用方法: FILE *_fdopen( int handle, const char *mode ); 范 例: 这个例子中先以句柄方式打开文件sample.txt,然后以数据流的方式处理该文件:  int handle,line=0; FILE *stream; char buffer[120]; handle=_open("sample.txt",_O_RDONLY); steam=_fdopen(handle,"r"); while(fgets(buffer,120,stream)!=NULL) line++; fclose(stream); cout<<"文件中有"< 函数功能: 从标准输入设备上读取一个字符 使用方法: int _fgetchar( void ); 范 例: 和fgetc函数类似 函数名 : _fgetwchar 所属库名: or 函数功能: 从标准输入设备读取一个字符 使用方法: wint_t _fgetwchar( void ); 范 例: 和fgetchar类似 函数名 : _filelength 所属库名: 函数功能: 测试文件的字节长度,若失败返回-1L 使用方法: long _filelength( int handle ); 范 例: 这个例子中显示了文件sample.txt的字节长度:   int Handle; if(Handle=_open("sample.txt",_O_RDWR)!=-1) { cout<<"文件长度是"<<_filelength(Handle)<<"字节"; _close(Handle); } 函数名 : _filelengthi64 所属库名: 函数功能: 测试文件的字节长度,若失败返回-1L 使用方法: __int64 _filelengthi64( int handle ); 范 例: 和_filelength函数类似 函数名 : _fileno 所属库名: 函数功能: 得到某个数据流的文件句柄 共135页 第页 VC 函 数 详 解 使用方法: int _fileno( FILE *stream ); 范 例: 这个例子中显示了标准输出设备stdout的文件句柄:   cout<<"标准输出设备sdtout的文件句柄:"<<_fileno(stdout)< 函数功能: 关闭已经打开的搜索句柄,释放相关的资源,若成功则返回0,否则返回-1 使用方法: int _findclose( long handle ); 范 例: 请参看_findfirst函数 函数名 : _findfirst 所属库名: 函数功能: 搜索与指定的文件名称匹配的第一个实例,若成功则返回第一个实例的句柄,否则返回-1L 使用方法: long _findfirst( char *filespec, struct _finddata_t *fileinfo ); 范 例: 这个例子中实现了搜索当前目录中所有的文本文件(.txt),并且显示出它的名字: long Handle; struct_finddata_t FileInfo; if((Handle=_findfirst("*.txt",&FileInfo))==-1L) cout<<"没有找到匹配的项目"; else { cout< 函数功能: 搜索与指定的文件名称匹配的第一个实例,若成功则返回第一个实例的句柄,否则返回-1L 使用方法: __int64 _findfirsti64( char *filespec, struct _finddata_t *fileinfo ); 范 例: 和_findfirst函数类似 共149页 第页 VC 函 数 详 解 函数名 : _findnext 所属库名: 函数功能: 搜索与_findfirst函数提供的文件名称匹配的下一个实例,若成功则返回0,否则返回-1 使用方法: int _findnext( long handle, struct _finddata_t *fileinfo ); 范 例: 请参看_findfirst函数 函数名 : _findnext64 所属库名: 函数功能: 搜索与_findfirst64函数提供的文件名称匹配的下一个实例,若成功则返回0,否则返回-1 使用方法: __int64 _findnexti64( long handle, struct _finddata_t *fileinfo ); 范 例: 和_findnext函数类似 函数名 : _finite 所属库名: 函数功能: 确定double型参数x是否为有尽小数,若是则返回一个非0值,否则返回0 使用方法: int _finite( double x ); 范 例: 这个例子测试了double型变量x是否为有尽小数: double x; x=0.39348745497854; if(_finite(x)!=0) cout<<"变量x是有尽小数"; 函数名 : _flushall 所属库名: 函数功能: 清除所有的数据流和所有的缓冲区 使用方法: int _flushall( void ); 范 例: 这个例子中将清除所有的数据流和缓冲区: int Count; Count= _flushall(); 函数名 : _fpclass 所属库名: 共135页 第页 VC 函 数 详 解 函数功能: 返回一个状态字来记录参数x的浮点类信息 使用方法: int _fpclass( doublex ); 范 例: double x=5.00000; if(_fpclass(x)==_FPCLASS_PN) cout<<"x是正数"; 函数名 : _fpieee_flt 所属库名: 函数功能: 当发生IEEE浮点异常时,引发用户定义的错误处理程序,返回的值即为错误处理程序的返回值 使用方法: int _fpieee_flt( unsigned long exc_code, struct _EXCEPTION_POINTERS *exc_info, int handler(_FPIEEE_RECORD *) ); 范 例: 这个例子是各种浮点异常的错误处理程序的框架: define _EXE_MASK_EM_UNDERFLOW +\_EM_OVERFLOW+\_EM_ZERODIVIDE+\_EM_INEXACT void main() { __try {_controlfp(_EXC_MASK,_MCW_EM); __except(_fpieee_flt(GetExceptionCode(),GetExecptionInformation(),fpieee_Handler)) { …} 函数名 : _fpreset 所属库名: 函数功能: 初始化浮点算术程序包 使用方法: void _fpreset( void ); 范 例: 这个例子中signal函数捕捉到浮点错误信号,然后调用_fpreset和longjmp函数:  jmp_buf jumpmark; int fperr; void main() { int jumpteturn; _control87(0,_MCW_EM); if(signal(SIGFPE,Fphandler)==SIG_ERR) {fprintf(stderr,"出错"); abort(); } jumpreturn=setjmp(jumpmark); if(j 函数名 : _fputchar 所属库名: 函数功能: 把一个字符写入标准输出设备,若成功则返回写入的字符数,否则返回EOF 使用方法: int _fputchar( int c ); 范 例: 和fputc函数类似 共149页 第页 VC 函 数 详 解 函数名 : _fputwchar 所属库名: or 函数功能: 把一个字符写入标准输出设备,若成功则返回写入的字符数,否则返回WEOF 使用方法: wint_t _fputwchar( wint_t c ); 范 例: 和fputchar函数类似 函数名 : _fsopen 所属库名: 函数功能: 以共享的方式打开一个数据流 使用方法: FILE *_fsopen( const char *filename, const char *mode, int shflag ); 范 例: FILE *Stream; if( (stream = _fsopen( "outfile", "wt", _SH_DENYWR )) != NULL ) fprintf( stream, "No one else in the network can write to this file until we are done.\n" ); fclose( stream ); { 函数名 : _fstat 所属库名: and 函数功能: 返回一个已经打开的文件的状态信息,若成功则返回0,否则返回-1 使用方法: int _fstat( int handle, struct _stat *buffer ); 范 例: 这个例子中创建了一个文件sample.txt,并写入了一个字符串:    int handle,result; char string[]="hello"; struct_stat status; handle=_open("sample.txt",_O_CREST|_O_WRONLY); result=_fstat(handle,&status); _close(handle);} 函数名 : _fstati64 所属库名: and 函数功能: 返回一个已经打开的文件的状态信息,若成功则返回0,否则返回-1 使用方法: __int64 _fstati64( int handle, struct _stat *buffer ); 范 例: 和_fstat函数类似 共135页 第页 VC 函 数 详 解 函数名 : _ftime 所属库名: and 函数功能: 返回当前时间 使用方法: void _ftime( struct _timeb *timeptr ); 范 例: 这个例子中把当前时间的信息写入结构timebuffer中: struct_time timebuffer; char *p; _ftime(&timebuffer); p=ctime(&(timebuffer.time)); 函数名 : _fullpath 所属库名: 函数功能: 把某个相对路径转换为完整路径(绝对路径),若成功则返回一个指向该路径的指针,否则返回NULL 使用方法: char *_fullpath( char *absPath, const char *relPath, size_t maxLength ); 范 例: 这个例子中实现了把用户输入的相对路径转换为完整路径: char PartPath[_MAX_PATH], FullPATH[_MAX_PARH]; cout<<"请输入相对路径:"; gets(PartPath); if( _fullpath(FullPath,PartPath,_MAX_PARH)!=NULL) cout<<"绝对路径为:"< 函数功能: 为某个已经打开的文件设置修改时间,若成功则返回0,否则返回-1 使用方法: int _futime( int handle, struct _utimbuf *filetime ); 范 例: 这个例子中使用了_futime函数来把当前的系统时间设置为文件修改的时间: int hFile; system("dir futime.c"); hFile=_open("futime.c",_o_RDWR); if( _futime(hFile,NULL)==-1) perror("_futime failed\n"); else printf( "File time modified\n"); close (hfile); system("dir futime 函数名 : _gcvt 所属库名: 函数功能: 把一个double型的数据转换成一个字符串,并且把该字符串存储在缓冲区中,若成功则返回一个指向字符串的指针 使用方法: char *_gcvt( double value, int digits, char *buffer ); 范 例: 共149页 第页 VC 函 数 详 解 这个例子中把一个double型数据-3.1415e5转换成7位的字符串: char Buffer[50]; double source = -3.1415e5; _gcvt( source, 7, Buffer ); printf( "source: %f Buffer: '%s'\n", source, Buffer ); 函数名 : _get_osfhandle 所属库名: 函数功能: 返回某个数据流的FILE指针所对应的操作系统文件句柄,若失败则返回-1 使用方法: long _get_osfhandle( int filehandle ); 范 例: 这个例子中返回了指针Handle所对应的操作系统文件句柄OSFileHandle:   FILE *Handle; long OSFlieHandle; OSFileHandle=_get_osfhandle(Handle);  函数名 : _get_sbh_threshold 所属库名: 函数功能: 返回小块的上限值,缺省为480 使用方法: size_t _get_sbh_threshold( void ); 范 例: 这个例子中显示了小块堆的上限值: size_t limit; limit=_get_sbh_threshold; 函数名 : _getch 所属库名: 函数功能: 从键盘读取一个字符,但不把它回显 使用方法: int _getch( void ); 范 例: 这个例子中实现了从键盘输入20个字符: char Buffer[25]; int Count; for(Count=1;Count<=20;Count++) { Buffer[Count]=_getch(); } 函数名 : _getche 所属库名: 函数功能: 从键盘读取一个字符,并且把它回显 使用方法: int _getche( void ); 范 例: 和_getch函数类似 共135页 第页 VC 函 数 详 解 函数名 : _getcwd 所属库名: 函数功能: 返回当前的工作目录 使用方法: char *_getcwd( char *buffer, int maxlen ); 范 例: 这个例子中显示了当前的工作目录: char Directory[_MAX_PATH]; if(_getcwd(Directory,_MAX_PATH)!=NULL) cout<<"当前的工作目录是:"< 函数功能: 返回指定的驱动器上当前工作目录的完整路径(绝对路径) 使用方法: char *_getdcwd( int drive, char *buffer, int maxlen ); 范 例: 这个例子中显示了c盘的当前工作目录的名称(A盘为1,B盘为2,C盘为3,依次类推): int Drive=3; cahr Directory=[_MAX_PATH]; if (Drive,Directory,_MAX_PATH)!=NULL) cout<<"c盘的当前工作目录的完整路径为:"< 函数功能: 返回当前的磁盘驱动器,1代表A盘,2代表B盘,依次类推 使用方法: int _getdrive( void ); 范 例: int _getdrive( void ); 函数名 : _getmbcp 所属库名: 函数功能: 返回当前正在使用的多字节代码页,若返回值为0,则表示当前使用的是单字节代码,否则为多字节代码 使用方法: int _getmbcp( void ); 范 例: 这个例子中可以判断当前的代码页的类型:   if(_getmbcp()!=0) cout<<"正在使用多字节代码页"< 函数功能: 返回进程识别代码 使用方法: int _getpid( void ); 范 例: 这个例子中可以显示当前进程的识别代码:   printf( "\nProcess id: %d\n", _getpid() ); 函数名 : _getw 所属库名: 函数功能: 从某个数据流中读取一个整型数据 使用方法: int _getw( FILE *stream ); 范 例: 这个例子中从文件sample.txt中读取了一个整数: FILE *Stream; int x; Stream=fopen("sample.txt","rb"); I=_getw(Stream); cout< or 函数功能: 从标准输入设备上读取一行宽字符 使用方法: wchar_t *_getws( wchar_t *buffer ); 范 例: 和gets函数类似 函数名 : _heapadd 所属库名: 函数功能: 把一个内存区域添加到堆中去 使用方法: int _heapadd( void *memblock, size_t size ); 范 例: 这个例子中把一个假设长度为20字节的区域添加到堆中,指针Buffer指向这个区域:   _heapadd(Buffer,20);     函数名 : _heapchk 所属库名: 共135页 第页 VC 函 数 详 解 函数功能: 检查堆的连续性,若成功则返回一组预定义常量中的一个,否则把全局变量errno设置为ENOSYS 使用方法: int _heapchk( void ); 范 例: 这个例子中先分配然后释放一块内存区域Buffer来检查堆的状态是否正常:   int heapstatus;  char *buffer;   if( (buffer = (char *)malloc( 100 )) != NULL )  free( buffer );heapstatus = _heapchk();   switch( heapstatus ) { case _HEAPOK: printf(" OK - heap is fine\n" ); bre 函数名 : _heapmin 所属库名: 函数功能: 释放没有使用的堆空间,返还给操作系统,若成功则返回0,否则返回-1 使用方法: int _heapmin( void ); 范 例: 本函数多用于进行了堆操作之后用来释放未使用的空间:  _heapmin(); 函数名 : _heapset 所属库名: 函数功能: 检查堆的最小连续性,并且用指定的数值或者字符填充堆的自由项目,若成功则返回一组预定义常量中的一个,否则把全局变量errno设置为ENOSYS 使用方法: int _heapset( unsigned int fill ); 范 例: 这个例子中使用字符x填充堆中自由项目的每一个字节:  char *Buffer; int Status; Buffer=(char *)malloc(100)!=NULL); if((Stream=_heapset('x'))=_HEAPOK) cout<<"成功"; free(Buffer); 函数名 : _heapwalk 所属库名: 函数功能: 从头到尾扫描堆,并且返回堆中下一个项目的信息,若成功则返回一组预定义常量中的一个,否则把全局变量errno设置为ENOSYS 使用方法: int _heapwalk( _HEAPINFO *entryinfo ); 范 例: 这个例子中显示了堆中的每个项目信息: _HEAPINFO x; int status; x._pentry=NULL; while((status=_heapwalk(&x)==_HEAPOK) {cout<<(x._useflag==_USEDENTRY?"已使用":"未使用"); cout< 函数功能: 计算直角三角形的斜边长度,若操作失败则返回无穷大 使用方法: double _hypot( double x, double y ); 范 例: 这个例子中已知直角三角形的两条直角边的长度,使用函数_hypot可以计算出斜边的长度: double x=3.0,y=4.0; z=_hypot(x,y); 函数名 : _i64toa 所属库名: 函数功能: 把一个__int64型的数据转换为字符串,返回一个指向该宽字符串的指针 使用方法: char *_i64toa( __int64 value, char *string, int radix ); 范 例: 和_itoa函数类似 函数名 : _i64tow 所属库名: 函数功能: 把一个__int64型的数据转换为宽字符串,返回一个指向该宽字符串的指针 使用方法: wchar_t * _i64tow( __int64 value, wchar_t *string, int radix ); 范 例: 和_itoa函数类似 函数名 : _inp 所属库名: 函数功能: 从端口输入一个字节 使用方法: int _inp( unsigned short port ); 范 例: 这个例子中实现了从8号端口输入一个字节: int Port=8; int Byte; Byte=_inp(Port); 函数名 : _inpd 所属库名: 函数功能: 从端口输入一个双字(四字节) 共135页 第页 VC 函 数 详 解 使用方法: unsigned long _inpd( unsigned short port ); 范 例: 和_inp函数类似 函数名 : _inpw 所属库名: 函数功能: 从端口输入一个字(两字节) 使用方法: unsigned short _inpw( unsigned short port ); 范 例: 和_inp函数类似 函数名 : _isascii 所属库名: 函数功能: 若参数c是一个ASCII 字符(0x00-0x7f),则返回一个非0值,否则返回0 使用方法: int __isascii( int c ); 范 例: 和isalnum函数类似 函数名 : _isatty 所属库名: 函数功能: 若某个句柄和某个字符设备(比如显示器、打印机、终端等)相关联,则返回一个非0值,否则返回0 使用方法: int _isatty( int handle ); 范 例: 这个例子中实现了检查标准输出设备(stdout)是否被重定向到某个磁盘文件: if( _isatty( _fileno( stdout ) ) ) printf( "stdout has not been redirected to a file\n" ); else printf( "stdout has been redirected to a file\n"); 函数名 : _iscsym 所属库名: 函数功能: 若参数c是一个字母、数字或者下划线,则返回一个非0值,否则返回0 使用方法: int __iscsym( int c ); 范 例: 和isalnum函数类似 共149页 第页 VC 函 数 详 解 函数名 : _iscsymf 所属库名: 函数功能: 若参数c是一个字母或者下划线,则返回一个非0值,否则返回0 使用方法: int __iscsymf( int c ); 范 例: 和isalnum函数类似 函数名 : _ismbbalnum 所属库名: 函数功能: 若参数c是一个字母或者一个数字,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页 使用方法: int _ismbbalnum( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbbalpha 所属库名: 函数功能: 若参数c是一个字母,则返回一个非0值,否返回0。本函数只适用于多字节字符的代码页 使用方法: int _ismbbalpha( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbbgraph 所属库名: 函数功能: 若参数是一个可打印字符(不包括空格),则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页 使用方法: int _ismbbgraph ( unsigned int c ); 范 例: 和isalnum函数类似 共135页 第页 VC 函 数 详 解 函数名 : _ismbbkalnum 所属库名: 函数功能: 若参数c是一个非ASCII文本符号(标点符号除外),则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbbkalnum( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbbkana 所属库名: 函数功能: 若参数c是一个日文片假名,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbbkana( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbbkprint 所属库名: 函数功能: 若参数c是一个非ASCII 文本符号或者非ASCII 标点符号,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbbkprint( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbbkpunct 所属库名: 函数功能: 若参数c是一个非ASCII 标点符号,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbbkpunct( unsigned int c ); 范 例: 和isalnum函数类似 共149页 第页 VC 函 数 详 解 函数名 : _ismbblead 所属库名: or 函数功能: 若参数c是某个多字节字符的第一个字节,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页 使用方法: int _ismbblead( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbbprint 所属库名: 函数功能: 若参数c是一个非ASCII的可打印字符,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页 使用方法: int _ismbbprint( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbbpunct 所属库名: 函数功能: 若参数c是一个非ASCII 标点符号,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页 使用方法: int _ismbbpunct( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbbtrail 所属库名: or 函数功能: 若参数c是某个多字节字符的第二个字符,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页 使用方法: int _ismbbtrail( unsigned int c ); 范 例: 和isalnum函数类似 共135页 第页 VC 函 数 详 解 函数名 : _ismbcalnum 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个单字节的英文字母,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbcalnum( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbcalpha 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个单字节的英文字母或日文片假名,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbcalpha( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbcdigit 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个单字节的ASCII数字字符,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbcdigit( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbcgraph 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个单字节的可打印的ASCII字符或日文片假名(空格除外),则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbcgraph( unsigned int c ); 范 例: 和isalnum函数类似 共149页 第页 VC 函 数 详 解 函数名 : _ismbchira 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个双字节的日文平假名(0x829F-0x82F1),则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbchira( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbckata 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个双字节的日文片假名(0x8340-0x8396),则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbckata( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbcl0 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个JIS(日本工业标准)编码中的非汉字字符(0x8140-0x889E),则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbcl0( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbcl1 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个JIS(日本工业标准)编码中的第一级字符(0x889F-0x9872),则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbcl1( unsigned int c ); 范 例: 和isalnum函数类似 共135页 第页 VC 函 数 详 解 函数名 : _ismbcl2 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个JIS(日本工业标准)编码中的第二级字符(0x989F-0xEA9E),则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbcl2( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbclegal 所属库名: 函数功能: 在932代码页环境下,若参数c的第一个字节的数值位于0x81-0x9F或0xE0-0xFC之间,第二个字节的数值位于0x40-0x7E或0x80-0xFC之间,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbclegal( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbclower 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个单字节的ASCII小写英文字母,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbclower( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbcprint 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个单字节的可打印的ASCII字符或日文片假名(包括空格),则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbcprint( unsigned int c ); 范 例: 和isalnum函数类似 共149页 第页 VC 函 数 详 解 函数名 : _ismbcpunct 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个单字节的ASCII 标点符号或日文片假名标点符号,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbcpunct( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbcspace 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个单字节的空格字符,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbcspace( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbcsymbol 所属库名: 函数功能: 在932代码页环境下,若参数c的数值位于0x8141-0x81AC之间,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbcsymbol( unsigned int c ); 范 例: 和isalnum函数类似 函数名 : _ismbcupper 所属库名: 函数功能: 在932代码页环境下,若参数c代表一个单字节的ASCII大写英文字母,则返回一个非0值,否则返回0。本函数只适用于多字节字符的代码页,通常用于日文编程 使用方法: int _ismbcupper( unsigned int c ); 范 例: 和isalnum函数类似 共135页 第页 VC 函 数 详 解 函数名 : _ismbslead 所属库名: or 函数功能: 在一个由多字节字符组成的字符串string中,若指针current指向某个字符的第一个字节,则返回-1,否则返回0。本函数只适用于多字节字符的代码页 使用方法: int _ismbslead( const unsigned char *string, const unsigned char *current ); 范 例: 和isalnum函数类似 函数名 : _ismbstrail 所属库名: or 函数功能: 在一个由多字节字符组成的字符串string中,若指针current指向某个字符的第二个字节,则返回-1,否则返回0。本函数只适用于多字节字符的代码页 使用方法: int _ismbstrail( const unsigned char *string, const unsigned char *current ); 范 例: 和isalnum函数类似 函数名 : _isnan 所属库名: 函数功能: 若参数x是一个NaN,则返回一个非0值 使用方法: int _isnan( double x ); 范 例: 和isalnum函数类似 函数名 : _itoa 所属库名: 函数功能: 把一个int型的数据转换为字符串,返回一个指向该字符串的指针 使用方法: char *_itoa( int value, char *string, int radix ); 范 例: 这个例子中把数字765转换为字符串“765”: int x=765; char y[15]; _itoa(x,y,10); cout< 共149页 第页 VC 函 数 详 解 函数功能: 把一个int型的数据转换为宽字符串,返回一个指向该宽字符串的指针 使用方法: wchar_t * _itow( int value, wchar_t *string, int radix ); 范 例: 和_itoa函数类似 函数名 : _kbhit 所属库名: 函数功能: 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0 使用方法: int _kbhit( void ); 范 例: 这个例子中屏幕上不停地显示“请按任意键”,如果用户按下键盘的任何一个键就可以使显示停止: while(!_kbhit()) _cputs("请按任意键"); 函数名 : _lfind 所属库名: 函数功能: 对指定的关键字进行线形搜索,若成功则返回一个指向搜索到的数组元素的指针 使用方法: void *_lfind( const void *key, const void *base, unsigned int *num, unsigned int width, int (__cdecl *compare)(const void *elem1, const void *elem2) ); 范 例: 这个例子中以“hello”为关键字进行搜索: char **result; char *key = "hello"; result = (char **)_lfind( &key, argv, &argc, sizeof(char *), compare ); if( result ) printf( "%s found\n", *result ); else printf( "hello not found!\n" ); 函数名 : _locking 所属库名: and 函数功能: 锁定或解除一个文件的字节数,若成功则返回0,否则返回-1 使用方法: int _locking( int handle, int mode, long nbytes ); 范 例: 这个例子中把文件sample.txt的前100个字节锁定,然后解除锁定: int handle; handle=_sopen("sample.txt",_O_RDWR,_SH_DENYNO,_S_IREAD|_S_IWRITE); _locking(handle,LK_NBLCK,100L);//锁定 _locking(handle,LK_UNLCK,100L);//解除锁定 函数名 : _logb 所属库名: 共135页 第页 VC 函 数 详 解 函数功能: 返回double型参数x的指数值 使用方法: double _logb( double x ); 范 例: 这个例子中返回了double型变量x的指数: double x=36.673; double y; y=_logb(x); 函数名 : _lrotl 所属库名: 函数功能: 把参数value中的二进制位向左移动指定的位数 使用方法: unsigned long _lrotl( unsigned long value, int shift ); 范 例: 这个例子中把变量x的二进制位向左移动了8位: unsigned long x=0x0fac35791, y; y=_lrtol(x,8); 函数名 : _lrotr 所属库名: 函数功能: 把参数value中的二进制位向右移动指定的位数 使用方法: unsigned long _lrotr( unsigned long value, int shift ); 范 例: 和_lrtol函数类似 函数名 : _lsearch 所属库名: 函数功能: 对指定的关键词进行线形搜索,若成功则返回一个指向搜索到的数组元素的指针,否则 使用方法: void *_lsearch( const void *key, void *base, unsigned int *num, unsigned int width, int (__cdecl *compare)(const void *elem1, const void *elem2) ); 范 例: 和_lfinf类似 函数名 : _lseek 所属库名: 函数功能: 把一个文件指针移动到指定的位置,若成功则返回以字节为单位的位置值,否则返回-1L 使用方法: long _lseek( int handle, long offset, int origin ); 范 例: 和fseek函数类似 共149页 第页 VC 函 数 详 解 函数名 : _lseeki64 所属库名: 函数功能: 把一个文件指针移动到指定的位置,若成功则返回以字节为单位的位置值,否则返回-1L 使用方法: __int64 _lseeki64( int handle, __int64 offset, int origin ); 范 例: 和fseek函数类似 函数名 : _ltoa 所属库名: 函数功能: 把一个长整型数据转换为字符串 使用方法: char *_ltoa( long value, char *string, int radix ); 范 例: 和_itoa函数类似 函数名 : _ltow 所属库名: 函数功能: 把一个长整型数据转换为字符串 使用方法: wchar_t *_ltow( long value, wchar_t *string, int radix ); 范 例: 和_itoa函数类似 函数名 : _makepath 所属库名: 函数功能: 为某个组件创建一个路径名称 使用方法: void _makepath( char *path, const char *drive, const char *dir, const char *fname, const char *ext ); 范 例: 这个例子中给文件sample.txt创建了一个完整的路径(包括驱动器名称、目录名称、文件名称和扩展名称): char *path ; _makepath(path,"d","\\user\\","sample","txt"); 函数名 : _matherr 所属库名: 共135页 第页 VC 函 数 详 解 函数功能: 处理各种数学运算错误,若成功则返回一个非0值,否则返回0 使用方法: int _matherr( struct _exception *except ); 范 例: 这个例子中由_matherr函数处理_DOMAIN类型的错误: void main() { printf( "log( -2.0 ) = %e\n", log( -2.0 ) ); int _matherr(struct_exception *except) if(execpt->type==_DOMAIN) {if(strcmp(except->name,"log")==0) {execpt->retval=log(-(execpt->arg1)); pringtf("%s函数的 函数名 : _max 所属库名: 函数功能: 返回两数中的较大者 使用方法: type __max( type a, type b ); 范 例: 这个例子中把变量x和y中较大的赋给变量z: int x=4,y=8,z; z=__max(x,y); 函数名 : _mbbtombc 所属库名: 函数功能: 把某个单字节形式的多字节字符转换为双字节形式的多字节字符,参数c的取值范围在0x20-0x7E或0xA1-0xDF之间 使用方法: unsigned short _mbbtombc( unsigned short c ); 范 例: unsigned short x=0x40,y; y=_mbbtombc(x); 函数名 : _mbbtype 所属库名: 函数功能: 测试一个多字节字符中的某个字节的类型,若参数type为1,则测试该字节是否为一个有效的尾部字节,否则测试该字节是否为一个有效的首部字节 使用方法: int _mbbtype( unsigned char c, int type ); 范 例: 这个例子中测试了字节x的类型:  unsigned char x=0x81; int result; result=_mbbtype(x,0); 函数名 : _mbccpy 所属库名: 函数功能: 把一个多字节字符从源地址src复制到目的地址dest 使用方法: void _mbccpy( unsigned char *dest, const unsigned char *src ); 共149页 第页 VC 函 数 详 解 范 例: 这个例子中把源指针x指向的字符复制到了目标指针y指向的位置: unsigned char *x=char(char *)malloc(sizeof(char)); unsigned char y; _mbccpy(y,x); 函数名 : _mbcjistojms 所属库名: 函数功能: 把某个JIS(日本工业标准)字符转换为SJIS(微软日文汉字)字符,若失败则返回0,本函数只适用于日文编程 使用方法: unsigned int _mbcjistojms( unsigned int c ); 范 例: 和_mbbtombc类似 函数名 : _mbcjmstojis 所属库名: 函数功能: 把某个SJIS(微软日文汉字)字符转换为JIS(日本工业标准)字符,若失败则返回0,本函数只适用于日文编程 使用方法: unsigned int _mbcjmstojis( unsigned int c ); 范 例: 和_mbbtombc函数类似 函数名 : _mbclen 所属库名: 函数功能: 返回某个多字节字符的长度,并且检查该字符的有效性,若该字符由一个字节组成则返回1,若由两个字节组成则返回2 使用方法: size_t _mbclen( const unsigned char *c ); 范 例: 这个例子中先把宽字符wchar转换为多字节字符mchar,然后返回mchar的长度:  char *mchar=(char *)malloc(sizeof(char); wchar_t wchar=L'b'; size_t mlength; wctomb(mchar,wchar); mlength=_mbclen(mchar); 函数名 : _mbctohira 所属库名: 函数功能: 把多字节片假名字符转换为多字节平假名字符,本函数只适用于日文编程 使用方法: unsigned int _mbctohira( unsigned int c ); 共135页 第页 VC 函 数 详 解 范 例: 和_mbbtombc函数类似 函数名 : _mbctokata 所属库名: 函数功能: 把多字节平假名字符转换为多字节片假名字符,本函数只适用于日文编程 使用方法: unsigned int _mbctokata( unsigned int c ); 范 例: 和_mbbtombc函数类似 函数名 : _mbctolower 所属库名: 函数功能: 把多字节的大写字符转换为小写字符 使用方法: unsigned int _mbctolower( unsigned int c ); 范 例: 和_mbbtombc函数类似 函数名 : _mbctombb 所属库名: 函数功能: 把某个双字节形式的多字节字符转换为单字节形式的多字节字符 使用方法: unsigned int _mbctombb( unsigned int c ); 范 例: 和_mbbtombc函数类似 函数名 : _mbctoupper 所属库名: 函数功能: 把多字节的小写字符转换为大写字符 使用方法: unsigned int _mbctoupper( unsigned int c ); 范 例: 和_mbbtombc函数类似 共149页 第页 VC 函 数 详 解 函数名 : _mbsbtype 所属库名: 函数功能: 测试一个多字节字符串中某个指定字节的类型 使用方法: int _mbsbtype( const unsigned char *mbstr, size_t count ); 范 例: 和_mbbtype函数类似 函数名 : _mbscat 所属库名: 函数功能: 把多字节源字符串添加到多字节目标字符串的尾部,返回后者 使用方法: unsigned char *_mbscat( unsigned char *strDestination, const unsigned char *strSource ); 范 例: 和strcat函数类似 函数名 : _mbschr 所属库名: 函数功能: 在多字节字符串string中搜索字符c 使用方法: unsigned char *_mbschr( const unsigned char *string, unsigned int c ); 范 例: 和strchr函数类似 函数名 : _mbscmp 所属库名: 函数功能: 比较两个多字节字符串,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _mbscmp(const unsigned char *string1, const unsigned char *string2 ); 范 例: 和strcmp函数类似 所属库名: 函数名 : _mbscoll 函数功能: 根据当前的代码页信息和地域信息,比较两个多字节字符串,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 共149页 第页 VC 函 数 详 解 使用方法: int _mbscoll( const unsigned char *string1, const unsigned char *string2 ); 范 例: 和strcoll函数类似 函数名 : _mbscpy 所属库名: 函数功能: 复制字符串 使用方法: unsigned char *_mbscpy( unsigned char *strDestination, const unsigned char *strSource ); 范 例: 和strcpy函数类似 函数名 : _mbscspn 所属库名: 函数功能: 返回多字节字符串strCharSet所属字符在多字节字符串string中第一次出现的位置 使用方法: size_t _mbscspn( const unsigned char *string, const unsigned char *strCharSet ); 范 例: 和strcspn函数类似 函数名 : _mbsdec 所属库名: 函数功能: 在一个多字节字符串中,参数start是一个指向某个多字节字符中第一个字节的指针,参数current是指向另外一个多字节字符中第一个字节的指针,本函数返回一个指向current之前、与current毗邻的一个字符的第一个字节 使用方法: unsigned char *_mbsdec( const unsigned char *start, const unsigned char *current ); 范 例: 这个例子中指针p1指向current之前的字符,指针p2指向current之后的之后的字符: char *p1,*p2; char *start,*current; … p1=_mbsdec(start,current); p2=_mbsinc(current);   函数名 : _mbsdup 所属库名: 函数功能: 把多字节字符串atSource复制到使用malloc函数分配的一块内存区域 使用方法: unsigned char *_mbsdup( const unsigned char *strSource ); 范 例: 共149页 第页 VC 函 数 详 解 和_strdup函数类似 函数名 : _mbsicmp 所属库名: 函数功能: 比较两个多字节字符串,不考虑字符的大小写匹配,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _mbsicmp( const unsigned char *string1, const unsigned char_t *string2 ); 范 例: 和_stricmp函数类似 函数名 : _mbsicoll 所属库名: 函数功能: 根据当前的代码页信息和地域信息,不考虑字符的大小写匹配,核对两个多字节字符串,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _mbsicoll( const unsigned char *string1, const unsigned char *string2 ); 范 例: 和_stricoll函数类似 函数名 : _mbsinc 所属库名: 函数功能: 在一个多字节字符串中,参数current是指向某个多字节字符串中第一个字节的指针,返回一个指向current之后且和current毗邻的那个多字节字符第一个字节 使用方法: unsigned char *_mbsinc( const unsigned char *current ); 范 例: 请参看_mbsdec函数 函数名 : _mbslen 所属库名: 函数功能: 返回某个多字节字符串的字符长度 使用方法: size_t _mbslen( const unsigned char *string ); 范 例: 和strlen函数类似 共135页 第页 VC 函 数 详 解 函数名 : _mbslwr 所属库名: 函数功能: 把某个多字节字符串中的大写字母转换为小写字母 使用方法: unsigned char *_mbslwr( unsigned char *string ); 范 例: 和_strlwr函数类似 函数名 : _mbsnbcat 所属库名: 函数功能: 把多字节源字符串src中指定数量的字节添加到多字节目标字符串dest的尾部 使用方法: unsigned char *_mbsnbcat( unsigned char *dest, const unsigned char *src, size_t count ); 范 例: 和strncat函数类似 函数名 : _mbsnbcmp 所属库名: 函数功能: 把字符串string1中指定数量的字节和字符串string2进行比较,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _mbsnbcmp( const unsigned char *string1, const unsigned char string2, size_t count ); 范 例: 和strncmp函数类似 函数名 : _mbsnbcnt 所属库名: 函数功能: 返回某个多字节字符串中指定数量的字符所包含的字节数 使用方法: size_t _mbsnbcnt( const unsigned char *string, size_t number ); 范 例: 这个例子中检查了字符串string中是否含有多字节字符:  char string[]="helloevery"; int x,y; x=_mbsnbcnt(string,5); y=_mbsnccnt(string,5); if ((x-y)==0) cout<<"前5个字符是单字节字符"< 函数功能: 把字符串string1中指定数量的字节和字符串string2进行核对,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _mbsnbcoll( const unsigned char *string1, const unsigned char string2, size_t count ); 范 例: 和strncmp函数类似 函数名 : _mbsnbcpy 所属库名: 函数功能: 把指定数量的字节从多字节源字符串src复制到多字节目标字符串dest中 使用方法: unsigned char * _mbsnbcpy( unsigned char *dest, const unsigned char *src, size_t count ); 范 例: 和strncpy函数类似 函数名 : _mbsnbicmp 所属库名: 函数功能: 把字符串string1中指定数量的字节和字符串string2进行比较,不考虑大小写匹配,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _mbsnbicmp( const unsigned char *string1, const unsigned char *string2, size_t count ); 范 例: 和_strnicmp函数类似 函数名 : _mbsnbicoll 所属库名: 函数功能: 把字符串string1中指定数量的字节和字符串string2进行核对,不考虑大小写匹配,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _mbsnbicoll( const unsigned char *string1, const unsigned char string2, size_t count ); 范 例: 和_strnicmp函数类似 共135页 第页 VC 函 数 详 解 函数名 : _mbsnbset 所属库名: 函数功能: 把某个多字节字符串中指定数量的字节用参数c代表的字符来代替,返回一个指向新字符串的指针 使用方法: unsigned char *_mbsnbset( unsigned char *string, unsigned int c, size_t count ); 范 例: 和_strnset函数类似 函数名 : _mbsncat 所属库名: 函数功能: 把多字节源字符串strSource中指定数量的字符添加到多字节目标字符串strDest尾部 使用方法: unsigned char *_mbsncat( unsigned char *strDest, const unsigned char *strSource, size_t count); 范 例: 和strncat函数类似 函数名 : _mbsnccnt 所属库名: 函数功能: 返回某个多字节字符串中指定数量的字符所包含的字节数 使用方法: size_t _mbsnccnt( const unsigned char *string, size_t number ); 范 例: 请参看_mbsnbcnt函数 函数名 : _mbsncmp 所属库名: 函数功能: 把字符串string1中指定数量的字符和字符串string2进行比较,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _mbsncmp( const unsigned char *string1, const unsigned char string2, size_t count ); 范 例: 和strncmp函数类似 共149页 第页 VC 函 数 详 解 函数名 : _mbsncoll 所属库名: 函数功能: 根据当前的代码页信息和地域信息,把多字节字符串string1中指定数量的字节和第二个多字节字符串string2进行核对,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _mbsncoll( const unsigned char *string1, const unsigned char *string2, size_t count ); 范 例: 和_strncoll函数类似 函数名 : _mbsncpy 所属库名: 函数功能: 把指定数量的字符从多字节字符串src复制到多字节字符串dest中 使用方法: unsigned char *_mbsncpy( unsigned char *strDest, const unsigned char *strSource, size_t count ); 范 例: 和strncpy函数类似 函数名 : _mbsnextc 所属库名: 函数功能: 返回某个多字节字符串中下一个多字节字符的整数值,字符串指针不移动 使用方法: unsigned int _mbsnextc( const unsigned char *string ); 范 例: 和_strnextc函数类似 函数名 : _mbsnicmp 所属库名: 函数功能: 把字符串string1中指定数量的字符和字符串string2进行比较,不考虑大小写匹配,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _mbsnicmp( const unsigned char *string1, const unsigned char *string2, size_t count ); 范 例: 和_strnicmp函数类似 共135页 第页 VC 函 数 详 解 函数名 : _mbsnicoll 所属库名: 函数功能: 根据当前的代码页信息和地域信息,不考虑大小写匹配,把字符串string1中指定数量的字节和字符串string2进行核对,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _mbsnicoll( const unsigned char *string1, const unsigned char *string2, size_t count ); 范 例: 和_strnicoll函数类似 函数名 : _mbsninc 所属库名: 函数功能: 把字符串的指针向后移动指定数量的字符 使用方法: unsigned char *_mbsninc( const unsigned char *string, size_t count ); 范 例: 和_strninc函数类似 函数名 : _mbsnset 所属库名: 函数功能: 把某个多字节字符串中指定数量的字符用参数c所代表的字符替换 使用方法: unsigned char *_mbsnset( unsigned char *string, unsigned int c, size_t count ); 范 例: 和_strnset函数类似 函数名 : _mbspbrk 所属库名: 函数功能: 返回多字节字符串strCharSet所属字符在多字节字符串string中第一次出现的位置 使用方法: unsigned char *_mbspbrk( const unsigned char*string, const unsigned char *strCharSet ); 范 例: 和strpbrk函数类似 函数名 : _mbsrchr 所属库名: 共149页 第页 VC 函 数 详 解 函数功能: 检测字符c在多字节字符串string中最后出现的位置,若成功则返回一个指向该字符的指针,否则返回NULL 使用方法: int _mbsrchr( const unsigned char *string, unsigned int c ); 范 例: 和strrchr函数类似 函数名 : _mbsrev 所属库名: 函数功能: 把某个多字节字符串中所有字符的次序颠倒,返回一个指向该字符串的指针 使用方法: unsigned char *_mbsrev( unsigned char *string ); 范 例: 和_strrev函数类似 函数名 : _mbsset 所属库名: 函数功能: 把某个多字节字符串中的所有字符用参数c代表的字符替换,返回一个指向该字符串的指针 使用方法: unsigned char *_mbsset( unsigned char *string, unsigned int c ); 范 例: 和_strset函数类似 函数名 : _mbsspn 所属库名: 函数功能: 返回多字节字符串string中不属于多字节字符串strCharSetd的第一个字符所在的位置 使用方法: size_t _mbsspn( const unsigned char *string, const unsigned char *strCharSet ); 范 例: 和strspn函数类似 函数名 : _mbsspnp 所属库名: 函数功能: 返回一个指向一个字符串string1中不属于字符串string2的第一个多字节字符的指针 使用方法: unsigned char *_mbsspnp( const unsigned char *string1, const unsigned char *string2 ); 范 例: 共135页 第页 VC 函 数 详 解 和_strspnp函数类似 函数名 : _mbsstr 所属库名: 函数功能: 在一个多字节字符串string 中搜索另一个字符串strCharSet,若找到则返回第一次出现的位置,否则返回NULL 使用方法: unsigned char *_mbsstr( const unsigned char *string, const unsigned char *strCharSet ); 范 例: 和strstr函数类似 函数名 : _mbstok 所属库名: 函数功能: 在多字节字符串strToken中搜索指定的记号(一个或几个字符),若成功则返回一个指向该记号的指针,否则返回NULL 使用方法: unsigned char *_mbstok( unsigned char*strToken, const unsigned char *strDelimit ); 范 例: 和strtok函数类似 函数名 : _mbstrlen 所属库名: 函数功能: 返回某个多字节字符串的字符长度 使用方法: size_t _mbstrlen( const char *string ); 范 例: 和strlen函数类似 函数名 : _mbsupr 所属库名: 函数功能: 把某个多字节字符串中的小写字母转换为大写字母 使用方法: unsigned char *_mbsupr( unsigned char *string ); 范 例: 和_strupr函数类似 共149页 第页 VC 函 数 详 解 函数名 : _memccpy 所属库名: or 函数功能: 从一个缓冲区拷贝字符 使用方法: void *_memccpy( void *dest, const void *src, int c, unsigned int count ); 范 例: 这个例子中_memccpy函数拷贝0个或者多个src的字节到dest中,当字符c已经拷贝或者已经拷贝count个字节后停止: char Buffer[80]; char *pdest; pdest=_memccpy(Buffer,string1,'s',60); *pdest='\0'; 函数名 : _memicmp 所属库名: or 函数功能: 比较两个缓冲区的字符(不考虑大小写) 使用方法: int _memicmp( const void *buf1, const void *buf2, unsigned int count ); 范 例: 和memcmp函数类似 函数名 : _min 所属库名: 函数功能: 返回两个数值中的较小者 使用方法: type __min( type a, type b ); 范 例: 和__max函数类似 函数名 : _mkdir 所属库名: 函数功能: 创建一个目录,若成功则返回0,否则返回-1 使用方法: int _mkdir( const char *dirname ); 范 例: 这个例子中先创建了一个目录c:\user,然后再把它给删除:    _mkdir("c:\\user"); system("dir c:\\user"); _rmdir("c:\\user"); 共135页 第页 VC 函 数 详 解 函数名 : _mktemp 所属库名: 函数功能: 创建一个唯一的文件名 使用方法: char *_mktemp( char *template ); 范 例: 这个例子中为临时文件生成了一个名称,然后把它关闭: char *templat="fnXXXXXX"; char *result; cahr name[5][9];  int Count ; FILE *fp; for(Count=0; Count<5;Count++) { strcpy(names[Count],template); result=_mktemp(names[Count]); fclose(fp); 函数名 : _msize 所属库名: 函数功能: 返回堆中某个内存区域的字节长度 使用方法: size_t _msize( void *memblock ); 范 例: 这个例子中首先开辟了一块内存空间,然后使用_msize来计算该区域的长度: int *buffer; size_t Size; buffer=(int *)malloc(200 * sizeof(int); Size=_msize(buffer); free(buffer); 函数名 : _nextafter 所属库名: 函数功能: 返回参数x在参数y方向上可以表示的最接近的数值,若x等于y,则返回x 使用方法: double _nextafter( double x, double y ); 范 例: 这个例子中z是y方向的并且最接近x的数值: double x=4.00,y=6.00; double z; z=_nextafter(x,y); 函数名 : _onexit 所属库名: 函数功能: 当程序正常终止时调用指定的函数,若成功则返回一个指向该函数的指针,否则发返回NULL 使用方法: _onexit_t _onexit( _onexit_t func ); 范 例: 和atexit函数类似 共149页 第页 VC 函 数 详 解 函数名 : _open 所属库名: 函数功能: 打开一个文件,若成功则返回该文件的句柄,否则返回-1 使用方法: int _open( const char *filename, int oflag [, int pmode] ); 范 例: 请参看_close函数 函数名 : _open_osfhandle 所属库名: 函数功能: 把一个运行文件句柄与一个现存操作系统文件的句柄建立关联 使用方法: int _open_osfhandle ( long osfhandle, int flags ); 范 例: 这个例子中中以只读方式打开了一个文件: long OSFileHandle; int FileHandle; …… FileHandle =_open_osfhandle(OSFileFhandle,_O_RDONLY); 函数名 : _outp 所属库名: 函数功能: 输出一个字节到某个端口 使用方法: int _outp( unsigned short port, int databyte ); 范 例: 这个例子中向8号端口输出了一个字节: int Port =8; int Byte = 0x35; _outp(Port,Byte); 函数名 : _outpd 所属库名: 函数功能: 输出一个双字到某个端口 使用方法: unsigned long _outpd( unsigned short port, unsigned long dataword ); 范 例: 和_outp函数类似 函数名 : _outpw 所属库名: 函数功能: 输出一个字到某个端口 共135页 第页 VC 函 数 详 解 使用方法: unsigned short _outpw( unsigned short port, unsigned short dataword ); 范 例: 和_outp函数类似 函数名 : _pclose 所属库名: 函数功能: 等待新命令处理器关闭指定管道上的数据流 使用方法: int _pclose( FILE *stream ); 范 例: char buffer[128]; FILE *p; p=_popen("sample.txt","rt"); while(!feof(p)) if(fgets(buffer,128,p)!=NULL) printf(buffer); _pclose(p); } 函数名 : _pipe 所属库名: 函数功能: 创建一个用于读和写的管道,若成功则返回0,否则返回-1 使用方法: int _pipe( int *phandles, unsigned int psize, int textmode ); 范 例: void main( int argc, char *argv[] )  { int hpipe[2]; char hstr[20]; int pid, problem, c; int termstat;if( argc == 1 ) { setvbuf( stdout, NULL, _IONBF, 0 ); if( _pipe( hpipe, 256, O_BINARY ) == -1 ) exit( 1 ); itoa( hpipe[READ], hstr, 10 ); if( 函数名 : _popen 所属库名: 函数功能: 创建一个管道,并且执行一条命令,若成功则返回一个数据流,否则返回NULL 使用方法: FILE *_popen( const char *command, const char *mode ); 范 例: 请参看_pclose函数 函数名 : _putch 所属库名: 函数功能: 写一个字符到控制台 使用方法: int _putch( int c ); 范 例: 和putc函数类似 共149页 第页 VC 函 数 详 解 函数名 : _putenv 所属库名: 函数功能: 创建新的环境变量,修改或者删除现存的环境变量 使用方法: int _putenv( const char *envstring ); 范 例: 这个例子中修改了当前环境中lib变量的内容: char *LibVar; _putenv("LIB=c:\\templib1; c:\\templib2"); cout<<"LIB环境变量的内容是:"< 函数名 : _putw 函数功能: 写一个整数到一个数据流 使用方法: int _putw( int binint, FILE *stream ); 范 例: 这个例子中在标准输出设备stdout上显示了一个整数7: int x=7; _putw(x,stdout); 函数名 : _putws 所属库名: 函数功能: 把一个宽字符输出到标准输出设备(stdout) 使用方法: int _putws( const wchar_t *string ); 范 例: 和putc函数类似 函数名 : _query_new_handler 所属库名: 函数功能: 返回当前新处理器例程的地址 使用方法: _PNH _query_new_handler( void ); 范 例: 这个例子中返回了_set_new_handler函数设置的函数地址: _PNH HandlerAddress; HnadleAddress=_query_new_handler(); 共135页 第页 VC 函 数 详 解 函数名 : _query_new_mode 所属库名: 函数功能: 返回一个1或者0来表示_set_new_mode函数设置的调用模式,若为1则表示内存分配失败时,malloc函数调用_set_new_handler函数所指定的错误处理函数;若返回0则表示不调用 使用方法: int _query_new_mode( void ); 范 例: 这个例子中返回了_set_new_mode设置的分配模式: int NewMode; NewMode=_query_new_mode(); 函数名 : _read 所属库名: 函数功能: 从一个文件读取数据 使用方法: int _read( int handle, void *buffer, unsigned int count ); 范 例: 请参看_eof函数 函数名 : _rmdir 所属库名: 函数功能: 删除一个目录,若成功则返回0,否则返回-1 使用方法: int _rmdir( const char *dirname ); 范 例: 请参看_mkdir函数 函数名 : _rmtmp 所属库名: 函数功能: 删除当前目录中的临时文件,若成功则返回被删除文件的数目 使用方法: int _rmtmp( void ); 范 例: 这个例子中创建了3个临时文件,然后把它们删除: int x; FILE *Stream; for(x=1;x<=3;x++) { Stream=tmfile( ); } _rmtmp(); 共149页 第页 VC 函 数 详 解 函数名 : _rotl 所属库名: 函数功能: 向左循环移动 使用方法: unsigned int _rotl( unsigned int value, int shift ); 范 例: 这个例子中把变量x左移8位: unsigned int x=0x0fd93; unsigned y; y=_rotl(x,4); 函数名 : _rotr 所属库名: 函数功能: 向右循环移动 使用方法: unsigned int _rotr( unsigned int value, int shift ); 范 例: 和_rotl函数类似 函数名 : _scalb 所属库名: 函数功能: 以2的幂缩放自变量 使用方法: double _scalb( double x, long exp ); 范 例: 这个例子中计算了变量x的8次方: double x=5,y; long z=4; y=_scalb(x,z); 函数名 : _searchenv 所属库名: 函数功能: 使用环境路径查找一个文件 使用方法: void _searchenv( const char *filename, const char *varname, char *pathname ); 范 例: 这个例子中在系统环境指定的路径中搜索文件sample.txt: char pathbuffer[_MAX_PATH]; cahr searchfile[ ]="sample.txt"; char envvar[ ]="PATH"; _searchenv(searchfile,envvar,pathbuffer); if( *pathbuffer!='\0') printf("Path for %s:%s\n",searchfile,pathbuffer); 函数名 : _set_new_handler 所属库名: 共135页 第页 VC 函 数 详 解 函数功能: 当new语句分配内存区域失败时,把程序流程转移到用户的错误处理函数 使用方法: _PNH _set_new_handler( _PNH pNewHandler ); 范 例: 这个例子中的for循环是个死循环,不停地分配内存区域,这时将自动执行错误处理程序newhandler: char *buffer=new char[128]; void main() { _set_new_handler(newhandler); size_t *p=new size_t[1024]; for(;p!=0;p=new size_t[1024]) {;}} int newhandler(size_t size) { delete buffer; printf("内 函数名 : _set_new_mode 所属库名: 函数功能: 当内存分配失败时,决定malloc函数是否调用_set_new_handle函数所指定的错误处理程序 使用方法: int _set_new_mode( int newhandlermode ); 范 例: 这个例子中实现了malloc函数调用错误处理函数:  _set_new_mode(1); 函数名 : _set_sbh_threshold 所属库名: 函数功能: 设置小块堆支持的一个存储器分配的尺寸上限,默认为480,若成功则返回0,否则返回-1 使用方法: int _set_sbh_threshold( size_t size ); 范 例: 这个例子中把小块堆的上限设置为1600: size_t x=1600; _set_sbh_threshold(x); 函数名 : _set_se_translator 所属库名: 函数功能: 像c++类型的异常一样处理Win32异常(c结构的异常) 使用方法: typedef void (*_se_translator_function)( unsigned int, struct _EXCEPTION_POINTERS* ); _se_translator_function _set_se_translator( _se_translator_function se_trans_func ); 范 例: 这个例子中使用trans_fuc函数来处理异常: class SE_Exception { private: unsigned int nSE;  public: SE_Exception() {} SE_Exception( unsigned int n ) : nSE( n ) {} ~SE_Exception() {} unsigned int getSeNumber() { return nSE; } };  void main( void ) { try { _s 共149页 第页 VC 函 数 详 解 函数名 : _set_terminate 所属库名: 函数功能: 安装用户的终止操作函数 使用方法: typedef void (*terminate_function)(); terminate_function set_terminate( terminate_function term_func ); 范 例: 这个例子中使用用户自己的函数myfunc来终止操作:  void main() { int x=3,y=0; int z; set_terminate(myfunc); try { if (y==0) throw "非法数据"; else z=x/y; }  } void myfunc() {exit(-1);} 函数名 : _setmaxstdio 所属库名: 函数功能: 设置在标准输入输出层同时打开文件的最大个数 使用方法: int _setmaxstdio( int newmax ); 范 例: 这个例子中设定了在标准输入输出设备中能够最多同时打开6个文件:   int x=6; _setmaxstdio(x); 函数名 : _setmbcp 所属库名: 函数功能: 设置一个新的多字节代码页,若成功则返回0,否则返回-1 使用方法: int _setmbcp( int codepage ); 范 例: 这个例子中指定了ANSI代码页为新的多字节代码页:   _setmbcp(_MB_CP_ANSI); 函数名 : _setmode 所属库名: 函数功能: 设置文件转换模式,_O_TEXT方式(文本方式)在输入数据时把回车和换行转换为单一的换行,在输出数据时把换行转换为回车和换行;_O_BINARY方式(二进制方式)则不进行这种转换。若转换成功,则返回先前的方式,否则返回-1 使用方法: int _setmode ( int handle, int mode ); 范 例: 这个例子中把标准输入设备设置为二进制方式:   _setmode(_fileno(stdin),_O_BINAEY); 共135页 第页 VC 函 数 详 解 函数名 : _snprintf 所属库名: 函数功能: 把格式化的数据写入一个字符串 使用方法: int _snprintf( char *buffer, size_t count, const char *format [, argument] … ); 范 例: 这个例子中把字符串string1写入字符串string2:  char string1[]="hello"; char string2[50]; size_t Count=3; Count=snprintf(string2,Count,"%s",string1); 函数名 : _snwprintf 所属库名: or 函数功能: 把格式化的数据写入一个字符串 使用方法: int _snwprintf( wchar_t *buffer, size_t count, const wchar_t *format [, argument] … ); 范 例: 和_snprintf函数类似 函数名 : _sopen 所属库名: 函数功能: 以共享方式打开一个文件,若成功则返回该文件的句柄,否则返回-1 使用方法: int _sopen( const char *filename, int oflag, int shflag [, int pmode ] ); 范 例: 请参看_locking函数 函数名 : _spawnl 所属库名: 函数功能: 创建并且执行一个新的进程 使用方法: int _spawnl( int mode, const char *cmdname, const char *arg0, const char *arg1, … const char *argn, NULL ); 范 例: 这个例子中显示了8个spawn函数的用法:   char *my_env[] =  { "THIS=environment will be", "PASSED=to child.exe by the", "_SPAWNLE=and", "_SPAWNLPE=and", "_SPAWNVE=and", "_SPAWNVPE=functions", NULL  };   void main( int argc, char *argv[] )  {   char *args[4]; 共149页 第页 VC 函 数 详 解 函数名 : _spawnle 所属库名: 函数功能: 创建并且执行一个新的进程 使用方法: int _spawnle( int mode, const char *cmdname, const char *arg0, const char *arg1, … const char *argn, NULL, const char *const *envp ); 范 例: 请参看_spawnl函数 函数名 : _spawnlp 所属库名: 函数功能: 创建并且执行一个新的进程 使用方法: int _spawnlp( int mode, const char *cmdname, const char *arg0, const char *arg1, … const char *argn, NULL ); 范 例: 请参看_spawnl函数 函数名 : _spawnlpe 所属库名: 函数功能: 创建并且执行一个新的进程 使用方法: int _spawnlpe( int mode, const char *cmdname, const char *arg0, const char *arg1, … const char *argn, NULL, const char *const *envp ); 范 例: 请参看_spawnl函数 函数名 : _spawnv 所属库名: or 函数功能: 创建并且执行一个新的进程 使用方法: int _spawnv( int mode, const char *cmdname, const char *const *argv ); 范 例: 请参看_spawnl函数 函数名 : _spawnve 所属库名: or 函数功能: 创建并且执行一个新的进程 共135页 第页 VC 函 数 详 解 使用方法: int _spawnve( int mode, const char *cmdname, const char *const *argv, const char *const *envp ); 范 例: 请参看_spawnl函数 函数名 : _spawnvp 所属库名: or 函数功能: 创建并且执行一个新的进程 使用方法: int _spawnvp( int mode, const char *cmdname, const char *const *argv ); 范 例: 请参看_spawnl函数 函数名 : _spawnvpe 所属库名: or 函数功能: 创建并且执行一个新的进程 使用方法: int _spawnvpe( int mode, const char *cmdname, const char *const *argv, const char *const *envp ); 范 例: 请参看_spawnl函数 函数名 : _splitpath 所属库名: 函数功能: 把一个路径名称分为:驱动器、目录、文件和扩展名四个部分 使用方法: void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext ); 范 例: 请参看_makepath函数 函数名 : _stat 所属库名: followed by 函数功能: 获取某个文件的状态信息,若成功则返回0,否则返回-1 使用方法: int _stat( const char *path, struct _stat *buffer ); 范 例: 这个例子中显示了文件sample.txt的长度: int x; struct_stat buffer; x=_stat("sample.txt",&buffer); 共149页 第页 VC 函 数 详 解 函数名 : _stati64 所属库名: followed by 函数功能: 获取某个文件的状态信息,若成功则返回0,否则返回-1 使用方法: __int64 _stati64( const char *path, struct _stat *buffer ); 范 例: 和_stat函数类似 函数名 : _status87 所属库名: 函数功能: 返回浮点状态字 使用方法: unsigned int _status87( void ); 范 例: 这个例子中使用了_status87函数得到了浮点状态字:  double x=1e-30; float y;  y=x; printf("%x\n",_status87());   函数名 : _statusfp 所属库名: 函数功能: 返回浮点状态字 使用方法: unsigned int _statusfp( void ); 范 例: 和_status87函数类似 函数名 : _strdate 所属库名: 函数功能: 把当前日期复制到缓冲区中 使用方法: char *_strdate( char *datestr ); 范 例: 这个例子显示了当前日期: char Buffer[150]; _strdate(Buffer); 函数名 : _strdec 所属库名: 函数功能: 在一个字符串中,参数start是一个指向某个字符的指针,参数current是指向另外一个位于start后面的某个字符的指针,本函数返回一个指向current之前、与current毗邻的一个字符 共149页 第页 VC 函 数 详 解 使用方法: unsigned char *_strdec( const unsigned char *start, const unsigned char *current ); 范 例: 和_mbsdec函数类似 函数名 : _strdup 所属库名: 函数功能: 复制字符串到使用malloc函数分配的一块内存空间,若成功则返回一个指向该区域的指针,否则返回NULL 使用方法: char *_strdup( const char *strSource ); 范 例: 这个例子中使用_strdup函数把字符串string的内容复制到了buffer中: char string[]="hello"; char *buffer; buffer=_strdup(string); 函数名 : _strerror 所属库名: 函数功能: 显示一个用户提供的错误信息 使用方法: char *_strerror( const char *strErrMsg ); 范 例: 请参看strerror函数 函数名 : _stricmp 所属库名: 函数功能: 不考虑大小写匹配,比较两个字符串,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _stricmp( const char *string1, const char *string2 ); 范 例: 和strcmp函数类似 函数名 : _stricoll 所属库名: 函数功能: 根据当前的代码页信息和地域信息,不考虑大小写匹配,核对字符串string1和字符串string2,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _stricoll( const char *string1, const char *string2 ); 共149页 第页 VC 函 数 详 解 范 例: 和strnicmp函数类似 函数名 : _strinc 所属库名: 函数功能: 返回一个指向当前字符之后的下一个字符的指针 使用方法: unsigned char *_strinc( const unsigned char *current ); 范 例: 请参看_strdec函数 函数名 : _strlwr 所属库名: 函数功能: 把某个字符串中的大写字母转换为小写字母 使用方法: char *_strlwr( char *string ); 范 例: 这个例子中字符串string的内容改变为小写字母: char string[]="HELLO"; _strlwr(_strdup(string)); 函数名 : _strncnt 所属库名: 函数功能: 把指定数量的字符从src复制到dest 使用方法: size_t _strncnt( const unsigned char *string, size_t number ); 范 例: 这个例子中返回了字符串string中前5个字节包含的字符: char string[]="a good day"; int x; x=_strncnt(string,10); 函数名 : _strncoll 所属库名: 函数功能: 根据当前的代码页信息和地域信息,把第一个字符串string1中指定数量的字节和第二个字符串string2进行核对,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _strncoll( const char *string1, const char *string2, size_t count ); 范 例: 和strnicmp函数类似 共135页 第页 VC 函 数 详 解 函数名 : _strnextc 所属库名: 函数功能: 返回某个字符串中下一个字符的整数值,但不移动指针 使用方法: unsigned int _strnextc( const unsigned char *string ); 范 例: 这个例子中假设指针指向字符串string的第三个字符,本函数返回第四个字符: char string[]="hello"; int x; x=_strnextc(string); 函数名 : _strnicmp 所属库名: 函数功能: 不考虑大小写匹配,比较两个字符串,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _strnicmp( const char *string1, const char *string2, size_t count ); 范 例: 和strncmp函数类似 函数名 : _strnicoll 所属库名: 函数功能: 根据当前的代码页信息,不考虑大小写匹配,把第一个字符串string1中指定数量的字节和第二个字符串string2进行核对,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _strnicoll( const char *string1, const char *string2, size_t count ); 范 例: 和strnicmp函数类似 函数名 : _strninc 所属库名: 函数功能: 把字符串指针向后移动指定数量的字符 使用方法: unsigned char *_strninc( const unsigned char *string, size_t count ); 范 例: 这个例子中把指针指向了字符串string中的第五个字符: char string[]="hello everybody!"; _strninc(string,5); 共149页 第页 VC 函 数 详 解 函数名 : _strnset 所属库名: 函数功能: 把某个字符串中指定数量的字符,全部用参数c所代表的字符替代,返回一个指向新字符串的指针 使用方法: char *_strnset( char *string, int c, size_t count ); 范 例: 这个例子中把字符串string中的前三个字符换成了3个*号: char string[]="hello"; _strnset(string,'*',3); 函数名 : _strrev 所属库名: 函数功能: 把某个字符串中的字符的次序颠倒,返回一个指向该字符串的指针 使用方法: char *_strrev( char *string ); 范 例: 这个例子中字符串string从“hello”变成了“olleh”: char string[]="hello"; _strrev(_strdup(string)); 函数名 : _strset 所属库名: 函数功能: 把某个字符串中的所有字符用参数c所代表的字符代替,返回一个指向新字符串的指针 使用方法: char *_strset( char *string, int c ); 范 例: 这个例子中把字符串string中的所有字符换成了a: char string[]="hello"; _strset(string,"a"); 函数名 : _strspnp 所属库名: 函数功能: 返回一个指向宽字符串string1中不属于宽字符串string2的第一个字符的指针 使用方法: unsigned char *_strspnp( const unsigned char *string1, const unsigned char *string2 ); 范 例: 这个例子中指针p指向了字符e: char string[]="helloeveryone"; char *p; p=_strspnp(string,"hello"); 共135页 第页 VC 函 数 详 解 函数名 : _strtime 所属库名: 函数功能: 把当前时间复制到缓冲区中, 使用方法: char *_strtime( char *timestr ); 范 例: 这个例子中获取了当前时间: char buffer[10]; _strtime(buffer); cout< 函数功能: 把一个字符串转换为大写 使用方法: char *_strupr( char *string ); 范 例: 请参看_strlwr函数 函数名 : _swab 所属库名: 函数功能: 从src中复制n个字节到dest中,并且把每对相邻的字节交换 使用方法: void _swab( char *src, char *dest, int n ); 范 例: 这个例子中y的值是“2143”: char x[ ]="1234"; char *y; _swab(x,y,sizeof(x)); cout< 函数功能: 获取文件指针的位置 使用方法: long _tell( int handle ); 范 例: 这个例子中从文件sample.txt中读取200个字符,返回文件指针的当前位置: int Handle; char Buffer[250]; Handle=_open("sample.txt",_O_RDONLY); {if(_read(Handle,Buffer,200)>0) cout<<_tell(Handle); _close(Handle);} 函数名 : _telli64 所属库名: 共149页 第页 VC 函 数 详 解 函数功能: 获取文件指针的位置 使用方法: __int64 _telli64( int handle ); 范 例: 和_tell函数类似 函数名 : _tempnam 所属库名: 函数功能: 生成一个临时文件名 使用方法: char *_tempnam( char *dir, char *prefix ); 范 例: 这个例子中在目录c:\temp中生成一个临时文件名,它的前四个字符为abcd: char *name; name=_tempnam("c:\\temp","abcd"); 函数名 : _toascii 所属库名: 函数功能: 把指定字符转换为ASCII字符 使用方法: int __toascii( int c ); 范 例: 和_tolower函数类似 函数名 : _tolower 所属库名: 函数功能: 把指定字符转换为小写字母 使用方法: int _tolower( int c ); 范 例: 这个例子中_tolower函数和_toupper函数可以实现大小写的互换: char msg[ ]="Some of THESE letters are Capitals\n"; char *p; for(p=msg; p 函数功能: 把指定字符转换为大写字母 使用方法: int _toupper( int c ); 范 例: 共135页 第页 VC 函 数 详 解 请参看_tolower函数 函数名 : _tzset 所属库名: 函数功能: 设置时间环境变量 使用方法: void _tzset( void ); 范 例: 这个例子中TZ环境变量的缺省值为PST8PDT,即:“太平洋标准时间,8小时,太平洋夏季时间”: if(_putenv("TZ=PST8PDT")==0) { _tzset(); } 函数名 : _ui64toa 所属库名: 函数功能: 把一个unsigned__int64型的整数转换为一个字符串 使用方法: char * _ui64toa( unsigned _int64 value, char *string, int radix ); 范 例: 和_itoa函数类似 函数名 : _ui64tow 所属库名: 函数功能: 把一个unsigned__int64型的整数转换为一个宽字符串 使用方法: wchar_t * _ui64tow( unsigned __int64 value, wchar_t *string, int radix ); 范 例: 和_itoa函数类似 函数名 : _ultoa 所属库名: 函数功能: 把一个无符号long型整数转换为一个字符串 使用方法: char *_ultoa( unsigned long value, char *string, int radix ); 范 例: 和_itoa函数类似 函数名 : _ultow 所属库名: or 函数功能: 把一个无符号long型整数转换为一个宽字符串 共149页 第页 VC 函 数 详 解 使用方法: wchar_t *_ultow( unsigned long value, wchar_t *string, int radix ); 范 例: 和_ultoa函数类似 函数名 : _umask 所属库名: and and 函数功能: 设置缺省文件许可掩码 使用方法: int _umask( int pmode ); 范 例: 这个例子中把所有的文件都以“只读方式”创建: int Mask; Mask=_umask(_S_IWRITE); 函数名 : _ungetch 所属库名: 函数功能: 回送从控制台最后读取的字符 使用方法: int _ungetch( int c ); 范 例: 这个例子中从键盘上读入数据,若读到的不是数字,则把它放回到键盘缓冲区: int x,sum=0; while((x=getche())&&isdigit(x)) sum=sum*10+x-'0'; ungetch(ch) 函数名 : _unlink 所属库名: and 函数功能: 删除一个文件,若成功则返回0,否则返回-1 使用方法: int _unlink( const char *filename ); 范 例: 这个例子中把文件sample.txt删除了: _unlink("sample.txt"); 函数名 : _utime 所属库名: 函数功能: 为文件设置修改时间,若成功则返回0,否则返回-1 使用方法: int _utime( unsigned char *filename, struct _utimbuf *times ); 范 例: 这个例子中把文件sample.txt的修改时间变成当前的系统时间:   system("dir sample.txt"); _utime("sample.txt",NULL); system("dir sample.txt"); 共135页 第页 VC 函 数 详 解 函数名 : _vsnprintf 所属库名: and 函数功能: 使用一个参量表的指针写格式化的输出 使用方法: int _vsnprintf( char *buffer, size_t count, const char *format, va_list argptr ); 范 例: 和_snprintf函数类似 函数名 : _vsnwprintf 所属库名: or , and 函数功能: 使用一个参量表的指针写格式化的输出,本函数只适用于宽字符编程 使用方法: int _vsnwprintf( wchar_t *buffer, size_t count, const wchar_t *format, va_list argptr ); 范 例: 和_vsnprintf函数类似 函数名 : _waccess 所属库名: or 函数功能: 检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否则函数返回-1,本函数只适用于宽字符编程 使用方法: int _waccess( const wchar_t *path, int mode ); 范 例: 和_sccess函数类似 函数名 : _wasctime 所属库名: or 函数功能: 把tm型的变量转换为一个宽字符串 使用方法: wchar_t *_wasctime( const struct tm *timeptr ); 范 例: 和asctime函数类似 函数名 : _wchdir 所属库名: or 函数功能: 改变当前的工作目录,若成功则返回0,否则返回-1,本函数只适用于宽字符编程 共149页 第页 VC 函 数 详 解 使用方法: int _wchdir( const wchar_t *dirname ); 范 例: 和_chdir函数类似 函数名 : _wchmod 所属库名: or 函数功能: 改变文件的读写许可设置,如果改变成功返回0,否则返回-1,本函数只适用于宽字符编程 使用方法: int _wchmod( const wchar_t *filename, int pmode ); 范 例: 和_chmod函数类似 函数名 : _wcreat 所属库名: or 函数功能: 创建一个新文件,若成功则返回0,否则返回-1,本函数只适用于宽字符编程 使用方法: int _wcreat( const wchar_t *filename, int pmode ); 范 例: 和_creat函数类似 函数名 : _wcsdec 所属库名: 函数功能: 在一个宽字符串中,参数start是一个指向某个宽字符的第一个指针,参数current是指向另一个宽字符中第一个字节的指针,本函数返回一个指向current之前、与current毗邻的那个宽字符的第一个字节 使用方法: unsigned char *_wcsdec( const unsigned char *start, const unsigned char *current ); 范 例: 和_mbsdec函数类似 函数名 : _wcsdup 所属库名: or 函数功能: 复制字符串到使用malloc函数分配的一块内存空间,若成功则返回一个指向该区域的指针,否则返回NULL 使用方法: wchar_t *_wcsdup( const wchar_t *strSource ); 范 例: 共135页 第页 VC 函 数 详 解 和_strdup函数类似 函数名 : _wcsicmp 所属库名: or 函数功能: 不考虑大小写匹配,比较两个宽字符串,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _wcsicmp( const wchar_t *string1, const wchar_t *string2 ); 范 例: 和_stricmp函数类似 函数名 : _wcsicoll 所属库名: , 函数功能: 根据当前的代码页信息和地域信息,不考虑大小写匹配,核对宽字符串string1和第二个宽字符串string2,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _wcsicoll( const wchar_t *string1, const wchar_t *string2 ); 范 例: 和_stricoll函数类似 函数名 : _wcsinc 所属库名: 函数功能: 在一个多字节字符串中,参数current是指向某个多字节字符串中第一个字节的指针,返回一个指向current之后且和current毗邻的那个多字节字符第一个字节 使用方法: unsigned char *_wcsinc( const unsigned char *current ); 范 例: 和_mbsinc函数类似 函数名 : _wcslwr 所属库名: or 函数功能: 把某个宽字符串中的大写字母转换为小写字母 使用方法: wchar_t *_wcslwr( wchar_t *string ); 范 例: 和_strlwr函数类似 共149页 第页 VC 函 数 详 解 函数名 : _wcsncnt 所属库名: 函数功能: 返回某个宽字符串中指定数量的宽字符包含的字节数 使用方法: size_t _wcsnccnt( const unsigned char *string, size_t number ); 范 例: 和_mbsnbcnt函数类似 函数名 : _wcsncoll 所属库名: or 函数功能: 根据当前的代码页信息和地域信息,把第一个宽字符串string1中指定数量的字节和第二个宽字符串string2进行核对,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _wcsncoll( const wchar_t *string1, const wchar_t *string2, size_t count ); 范 例: 和_strncoll函数类似 函数名 : _wcsnextc 所属库名: 函数功能: 返回某个宽字符串中下一个字符的整数值,但不移动指针 使用方法: unsigned int _wcsnextc( const unsigned char *string ); 范 例: 和_strnextc函数类似 函数名 : _wcsnicmp 所属库名: or 函数功能: 不考虑大小写匹配,把第一个宽字符串string1中指定数量的字符和第二个宽字符串string2进行核对,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _wcsnicmp( const wchar_t *string1, const wchar_t *string2, size_t count ); 范 例: 和_strnicmp函数类似 共135页 第页 VC 函 数 详 解 函数名 : _wcsnicoll 所属库名: or 函数功能: 根据当前的代码页信息,不考虑大小写匹配,把第一个宽字符串string1中指定数量的字节和第二个宽字符串string2进行核对,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int _wcsnicoll( const wchar_t *string1, const wchar_t *string2 , size_t count ); 范 例: 和_strnicoll函数类似 函数名 : _wcsninc 所属库名: 函数功能: 把字符串指针向后移动指定数量的宽字符 使用方法: unsigned char *_wcsninc( const unsigned char *string, size_t count ); 范 例: 和_strninc函数类似 函数名 : _wcsnset 所属库名: or 函数功能: 把某个宽字符串中指定数量的字符,全部用参数c所代表的字符替代,返回一个指向新字符串的指针 使用方法: wchar_t *_wcsnset( wchar_t *string, wchar_t c, size_t count ); 范 例: 和_strnset函数类似 函数名 : _wcsrev 所属库名: or 函数功能: 把某个宽字符串中的字符的次序颠倒,返回一个指向该字符串的指针 使用方法: wchar_t *_wcsrev( wchar_t *string ); 范 例: 和_strrev函数类似 共149页 第页 VC 函 数 详 解 函数名 : _wcsset 所属库名: or 函数功能: 把某个宽字符串中的所有字符用参数c所代表的字符代替,返回一个指向新字符串的指针 使用方法: wchar_t *_wcsset( wchar_t *string, wchar_t c ); 范 例: 和_strset函数类似 函数名 : _wcsspnp 所属库名: 函数功能: 返回一个指向宽字符串string1中不属于宽字符串string2的第一个字符的指针 使用方法: unsigned char *_wcsspnp( const unsigned char *string1, const unsigned char *string2 ); 范 例: 和_strspnp函数类似 函数名 : _wcsupr 所属库名: or 函数功能: 把某个宽字符串中的小写字母转换为大写字母 使用方法: wchar_t *_wcsupr( wchar_t *string ); 范 例: 和_strupr函数类似 函数名 : _wctime 所属库名: or 函数功能: 把一个time_t型的时间值转换为一个字符串,并且根据当地的时区设置对字符串进行调整 使用方法: wchar_t *_wctime( const time_t *timer ); 范 例: 和ctime函数类似 函数名 : _wexecl 所属库名: or 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 共135页 第页 VC 函 数 详 解 使用方法: int _wexecl( const wchar_t *cmdname, const wchar_t *arg0, … const wchar_t *argn, NULL ); 范 例: 和_execl函数类似 函数名 : _wexecle 所属库名: or 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _wexecle( const wchar_t *cmdname, const wchar_t *arg0, … const wchar_t *argn, NULL, const char *const *envp ); 范 例: 和_execle函数类似 函数名 : _wexeclp 所属库名: or 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _wexeclp( const wchar_t *cmdname, const wchar_t *arg0, … const wchar_t *argn, NULL ); 范 例: 和_execlp函数类似 函数名 : _wexeclpe 所属库名: or 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _wexeclpe( const wchar_t *cmdname, const wchar_t *arg0, … const wchar_t *argn, NULL, const wchar_t *const *envp ); 范 例: 和_execlpe函数类似 函数名 : _wexecv 所属库名: or 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _wexecv( const wchar_t *cmdname, const wchar_t *const *argv ); 范 例: 和_execv函数类似 共149页 第页 VC 函 数 详 解 函数名 : _wexecve 所属库名: or 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _wexecve( const wchar_t *cmdname, const wchar_t *const *argv, const wchar_t *const *envp ); 范 例: 和_execve函数类似 函数名 : _wexecvp 所属库名: or 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _wexecvp( const wchar_t *cmdname, const wchar_t *const *argv ); 范 例: 和_execvp函数类似 函数名 : _wexecvpe 所属库名: or 函数功能: 在父进程中装载并执行新的子进程,若成功则返回0,否则返回-1 使用方法: int _wexecvpe( const wchar_t *cmdname, const wchar_t *const *argv, const wchar_t *const *envp ); 范 例: 和_execvpe函数类似 函数名 : _wfdopen 所属库名: or 函数功能: 把一个以低级I/O方式打开的文件与某个数据流联系起来,即将这个文件“数据流化”,若成功则返回一个指向该数据流的指针,否则返回NULL 使用方法: FILE *_wfdopen( int handle, const wchar_t *mode ); 范 例: 和_fdopen函数类似 函数名 : _wfindfirst 所属库名: or 共135页 第页 VC 函 数 详 解 函数功能: 搜索与指定的文件名称匹配的第一个实例,若成功则返回第一个实例的句柄,否则返回-1L 使用方法: long _wfindfirst( wchar_t *filespec, struct _wfinddata_t *fileinfo ); 范 例: 和_findfirst函数类似 函数名 : _wfindfirsti64 所属库名: or 函数功能: 搜索与指定的文件名称匹配的第一个实例,若成功则返回第一个实例的句柄,否则返回-1L 使用方法: __int64 _wfindfirsti64( wchar_t *filespec, struct _wfinddata_t *fileinfo ); 范 例: 和_findfirst函数类似 函数名 : _wfindnext 所属库名: or 函数功能: 搜索与_findfirst函数提供的文件名称匹配的下一个实例,若成功则返回0,否则返回-1 使用方法: int _wfindnext( long handle, struct _wfinddata_t *fileinfo ); 范 例: 和_findnext函数类似 函数名 : _wfindnexti64 所属库名: or 函数功能: 搜索与_findfirst64函数提供的文件名称匹配的下一个实例,若成功则返回0,否则返回-1 使用方法: __int64 _wfindnexti64( long handle, struct _wfinddata_t *fileinfo ); 范 例: 和_findnexti64函数类似 函数名 : _wfopen 所属库名: or 函数功能: 打开一个文件 使用方法: FILE *_wfopen( const wchar_t *filename, const wchar_t *mode ); 范 例: 和fopen函数类似 共149页 第页 VC 函 数 详 解 函数名 : _wfreopen 所属库名: or 函数功能: 重新分配文件指针 使用方法: FILE *_wfreopen( const wchar_t *path, const wchar_t *mode, FILE *stream ); 范 例: 和freopen函数类似 函数名 : _wfsopen 所属库名: or 函数功能: 以共享的方式打开一个数据流 使用方法: FILE *_wfsopen( const wchar_t *filename, const wchar_t *mode, int shflag ); 范 例: 和_fsopen函数类似 函数名 : _wfullpath 所属库名: or 函数功能: 把某个相对路径转换为完整路径(绝对路径),若成功则返回一个指向该路径的指针,否则返回NULL 使用方法: wchar_t *_wfullpath( wchar_t *absPath, const wchar_t *relPath, size_t maxLength ); 范 例: 和_fullpaht函数类似 函数名 : _wgetcwd 所属库名: or 函数功能: 返回当前的工作目录 使用方法: wchar_t *_wgetcwd( wchar_t *buffer, int maxlen ); 范 例: 和_getcwd函数类似 函数名 : _wgetdcwd 所属库名: or 函数功能: 返回指定的驱动器上当前工作目录的完整路径(绝对路径) 共135页 第页 VC 函 数 详 解 使用方法: wchar_t *_wgetdcwd( int drive, wchar_t *buffer, int maxlen ); 范 例: 和_getdcwd函数类似 函数名 : _wgetenv 所属库名: or 函数功能: 从当前环境返回一个环境变量的内容 使用方法: wchar_t *_wgetenv( const wchar_t *varname ); 范 例: 和getenv函数类似 函数名 : _wmakepath 所属库名: or 函数功能: 为某个组件创建一个路径名称 使用方法: void _wmakepath( wchar_t *path, const wchar_t *drive, const wchar_t *dir, const wchar_t *fname, const wchar_t *ext ); 范 例: 和_makepath函数类似 函数名 : _wmkdir 所属库名: or 函数功能: 创建一个目录,若成功则返回0,否则返回-1 使用方法: int _wmkdir( const wchar_t *dirname ); 范 例: 和_mkdir函数类似 函数名 : _wopen 所属库名: or 函数功能: 打开一个文件,若成功则返回该文件的句柄,否则返回-1 使用方法: int _wopen( const wchar_t *filename, int oflag [, int pmode] ); 范 例: 和_open函数类似 共149页 第页 VC 函 数 详 解 函数名 : _wperror 所属库名: or 函数功能: 输出一个出错信息 使用方法: void _wperror( const wchar_t *string ); 范 例: 和perror函数类似 函数名 : _wpopen 所属库名: or 函数功能: 创建一个管道,并且执行一条命令,若成功则返回一个数据流,否则返回NULL 使用方法: FILE *_wpopen( const wchar_t *command, const wchar_t *mode ); 范 例: 和_popen函数类似 函数名 : _wputenv 所属库名: or 函数功能: 创建新的环境变量,修改或者删除现存的环境变量 使用方法: int _wputenv( const wchar_t *envstring ); 范 例: 和_putenv函数类似 函数名 : _wremove 所属库名: or 函数功能: 删除一个文件,若成功则返回0,否则返回-1 使用方法: int _wremove( const wchar_t *path ); 范 例: 和remove函数类似 函数名 : _wrename 所属库名: or 函数功能: 给一个文件或目录改名 使用方法: int _wrename( const wchar_t *oldname, const wchar_t *newname ); 共135页 第页 VC 函 数 详 解 范 例: 和rename函数类似 函数名 : _write 所属库名: 函数功能: 把指定数量的数据写入文件,若成功则返回写入的字节数,否则返回-1 使用方法: int _write( int handle, const void *buffer, unsigned int count ); 范 例: 这个例子中把字符串“hello”写入文件sample.txt中:  int Handle; char String[ ]="hello"; Handle=_open("sample.txt",_O_RDWR|_O_CREAT); _write(Handle,String,sizeof(String)); _close(Handle); 函数名 : _wrmdir 所属库名: or 函数功能: 删除一个目录,若成功则返回0,否则返回-1 使用方法: int _wrmdir( const wchar_t *dirname ); 范 例: 和_rmdir函数类似 函数名 : _wsearchenv 所属库名: or 函数功能: 使用环境路径查找一个文件 使用方法: void _wsearchenv( const wchar_t *filename, const wchar_t *varname, wchar_t *pathname ); 范 例: 和_searchenv函数类似 函数名 : _wsetlocale 所属库名: or 函数功能: 设置、改变或返回当前的地域信息,若成功则返回一个指向地域信息字符串的指针 使用方法: wchar_t *_wsetlocale( int category, const wchar_t *locale ); 范 例: 和setlocale函数类似 共149页 第页 VC 函 数 详 解 函数名 : _wsopen 所属库名: or 函数功能: 以共享方式打开一个文件,若成功则返回该文件的句柄,否则返回-1 使用方法: int _wsopen( const wchar_t *filename, int oflag, int shflag [, int pmode ] ); 范 例: 和_sopen函数类似 函数名 : _wspawnl 所属库名: or 函数功能: 创建并且执行一个新的进程 使用方法: int _wspawnl( int mode, const wchar_t *cmdname, const wchar_t *arg0, const wchar_t *arg1, … const wchar_t *argn, NULL ); 范 例: 和_spawnl函数类似 函数名 : _wspawnle 所属库名: or 函数功能: 创建并且执行一个新的进程 使用方法: int _wspawnle( int mode, const wchar_t *cmdname, const wchar_t *arg0, const wchar_t *arg1, … const wchar_t *argn, NULL, const wchar_t *const *envp ); 范 例: 和_spawnle函数类似 函数名 : _wspawnlp 所属库名: or 函数功能: 创建并且执行一个新的进程 使用方法: int _wspawnlp( int mode, const wchar_t *cmdname, const wchar_t *arg0, const wchar_t *arg1, … const wchar_t *argn, NULL ); 范 例: 和_spawnlp函数类似 共135页 第页 VC 函 数 详 解 函数名 : _wspawnlpe 所属库名: or 函数功能: 创建并且执行一个新的进程 使用方法: int _wspawnlpe( int mode, const wchar_t *cmdname, const wchar_t *arg0, const wchar_t *arg1, … const wchar_t *argn, NULL, const wchar_t *const *envp ); 范 例: 和_spawnlpe函数类似 函数名 : _wspawnv 所属库名: or 函数功能: 创建并且执行一个新的进程 使用方法: int _wspawnv( int mode, const wchar_t *cmdname, const wchar_t *const *argv ); 范 例: 和_spawnv函数类似 函数名 : _wspawnve 所属库名: or 函数功能: 创建并且执行一个新的进程 使用方法: int _wspawnve( int mode, const wchar_t *cmdname, const wchar_t *const *argv, const wchar_t *const *envp ); 范 例: 和_spawnve函数类似 函数名 : _wspawnvp 所属库名: or 函数功能: 创建并且执行一个新的进程 使用方法: int _wspawnvp( int mode, const wchar_t *cmdname, const wchar_t *const *argv ); 范 例: 和_spawnvp函数类似 函数名 : _wspawnvpe 所属库名: or 共149页 第页 VC 函 数 详 解 函数功能: 创建并且执行一个新的进程 使用方法: int _wspawnvpe( int mode, const wchar_t *cmdname, const wchar_t *const *argv, const wchar_t *const *envp ); 范 例: 和_spawnvpe函数类似 函数名 : _wsplitpath 所属库名: or 函数功能: 把一个路径名称分为:驱动器、目录、文件和扩展名四个部分,本函数只适用于宽字符编程 使用方法: void _wsplitpath( const wchar_t *path, wchar_t *drive, wchar_t *dir, wchar_t *fname, wchar_t *ext ); 范 例: 和_splitpath函数类似 函数名 : _wstat 所属库名: followed by or 函数功能: 获取某个文件的状态信息,若成功则返回0,否则返回-1,本函数只适用于宽字符编程 使用方法: int _wstat( const wchar_t *path, struct _stat *buffer ); 范 例: 和_stat函数类似 函数名 : _wstati64 所属库名: followed by or 函数功能: 获取某个文件的状态信息,若成功则返回0,否则返回-1,本函数只适用于宽字符编程 使用方法: __int64 _wstati64( const wchar_t *path, struct _stat *buffer ); 范 例: 和_stati64函数类似 函数名 : _wstrdate 所属库名: or 函数功能: 把当前日期复制到缓冲区中,本函数只适用于宽字符编程 使用方法: wchar_t *_wstrdate( wchar_t *datestr ); 范 例: 共135页 第页 VC 函 数 详 解 和_strdate函数类似 函数名 : _wstrtime 所属库名: or 函数功能: 把当前时间复制到缓冲区中,本函数只适用于宽字符编程 使用方法: wchar_t *_wstrtime( wchar_t *timestr ); 范 例: 和_strtime函数类似 函数名 : _wsystem 所属库名: or or 函数功能: 执行一个外部命令command,若成功则返回命令解释程序的返回值,若command为NULL,则返回一个非0值,若命令解释程序不存在,则返回0,若发生其它错误则返回-1。本函数只适用于宽字符编程 使用方法: int _wsystem( const wchar_t *command ); 范 例: 和system函数类似 函数名 : _wtempnam 所属库名: or 函数功能: 生成一个临时文件名来打开这个临时文件,若成功则返回该名称,否则返回NULL,本函数只适用于宽字符编程 使用方法: wchar_t *_wtempnam( wchar_t *dir, wchar_t *prefix ); 范 例: 和_tempnam函数类似 函数名 : _wtmpnam 所属库名: or 函数功能: 生成一个临时文件名来打开这个临时文件,若成功则返回该名称,否则返回NULL,本函数只适用于宽字符编程 使用方法: wchar_t *_wtmpnam( wchar_t *string ); 范 例: 和tmpnam函数类似 共149页 第页 VC 函 数 详 解 函数名 : _wtoi 所属库名: or 函数功能: 把一个宽字符转换为int型整数 使用方法: int _wtoi( const wchar_t *string ); 范 例: 和atoi函数类似 函数名 : _wtoi64 所属库名: or 函数功能: 把一个宽字符转换为__int64型整数 使用方法: __int64 _wtoi64( wchar_t *string ); 范 例: 和_atoi64函数类似 函数名 : _wtol 所属库名: or 函数功能: 把一个宽字符转换为long型整数 使用方法: long _wtol( const wchar_t *string ); 范 例: 和atol函数类似 函数名 : _wulink 所属库名: or 函数功能: 删除一个文件,若成功则返回0,否则返回-1,本函数只适用于宽字符编程 使用方法: int _wunlink( const wchar_t *filename ); 范 例: 和_ulink函数类似 函数名 : _wutime 所属库名: or 函数功能: 为一个文件设置修改时间,若成功则返回0,否则返回-1,本函数只适用于宽字符编程 使用方法: int _wutime( wchar_t *filename, struct _utimbuf *times ); 共135页 第页 VC 函 数 详 解 范 例: 和_utime函数类似 函数名 : abort 所属库名: and 函数功能: 中止当前的过程,返回一个错误代码。错误代码的缺省值是3 使用方法: void abort(void); 范 例: 如果文件NOSUCHF.ILE不存在,则终止程序: FILE *STREAM;IF(( 函数名 : abs abs 所属库名: and 函数功能: 计算并返回一个整数的绝对值 使用方法: int abs(int n); 范 例: 令变量b的值为变量a的绝对值: Int x,y; x=-4; y=abs(x); 函数名 : acos 所属库名: 函数功能: 计算并返回某个double类型表达式的反余弦值 使用方法: double acos(double x); 范 例: 将0.45的反余弦值赋给double型变量a: Double a; a=acos(0.45); 函数名 : asctime 所属库名: 函数功能: 把tm型的变量转换为一个字符串 使用方法: char *asctime( const struct tm *timeptr ); 范 例: 得到系统当前日期和时间: time_t Elapse; struct tm *Now; time(&Elapse); Now=locatime(&Elapse); cout<<"当前的日期和时间为:"< 函数功能: 计算并且返回一个double型表达式的反正弦值 使用方法: double asin(double x); 范 例: 将0.45的反正弦值赋给double型变量a: double a; a=asin(0.45); 函数名 : assert 所属库名: 函数功能: 计算一个表达式,若它的值是false(假),则显示一条调试信息,并且终止执行程序 使用方法: void assert( int expression ); 范 例: 测试一个字符串string是否为空,如果不为空,则程序继续执行,否则终止执行: assert(string != NULL); 函数名 : atan 所属库名: 函数功能: 计算一个double型表达式的反正切值 使用方法: double atan( double x ); 范 例: 和acos函数类似 函数名 : atan2 所属库名: 函数功能: 计算一个除法表达式(x/y)的反正切值 使用方法: double atan2( double y, double x ); 范 例: 将a/b的反正切值赋给double型变量c: double a=84.55; double b=34.6; double c; c=atan2(x/y); 函数名 : atexit 所属库名: 函数功能: 在退出某个程序时,执行一个特定的程序。执行成功就返回0,否则返回一个非0值 共135页 第页 VC 函 数 详 解 使用方法: int atexit( void ( __cdecl *func )( void ) ); 范 例: 在执行函数a显示“goodmorning”之前先显示“goodevening”: include include void a(); void main() { atexit(a); printf("goodevening\n"); } void a() { printf("goodmorning\n"); } 函数名 : atof 所属库名: and 函数功能: 把一个字符串转换为double型 使用方法: double atof( const char *string ); 范 例: 本程序输出的结果为34656.00000,原字符串中的“mas”不被转换: void main() { char *p="34656.mas"; double a; a=atof(p); printf("%f",a); } 函数名 : atoi 所属库名: 函数功能: 把一个字符串转换为integer型 使用方法: int atoi( const char *string ); 范 例: 和atof函数类似 共149页 第页 VC 函 数 详 解 函数名 : atol 所属库名: 函数功能: 把一个字符串转换为long型 使用方法: long atol( const char *string ); 范 例: 和atof函数类似 函数名 : bsearch 所属库名: and 函数功能: 在一个已经排序的数组中进行折半搜索 使用方法: void *bsearch( const void *key, const void *base, size_t num, size_t width, int ( __cdecl *compare ) ( const void *elem1, const void *elem2 ) ); 范 例: 这个例子中使用bsearch函数查找字符“cat”: void main( int argc, char **argv ) { char **result; char *key = "cat"; int I; qsort( (void *)argv, (size_t)argc, sizeof( char * ), (int (*)(const void*, const void*))compare ); for( I = 0; I < argc; ++I ) printf( "% 函数名 : calloc 所属库名: and 函数功能: 给一个数组开辟内存空间,并给数组中的每个元素赋初值0。 使用方法: void *calloc( size_t num, size_t size ); 范 例: 给40个长整型数据开辟内存空间,初值为0.Buffer是指向所开辟的内存空间的指针: long *buffer; buffer = (long *)calloc( 40, sizeof( long ) ); 函数名 : ceil 所属库名: 函数功能: 返回大于或者等于指定表达式的最小整数 使用方法: double ceil( double x ); 范 例: 这个例子中的变量x的值为35: float x; x=ceil(34.667); 共135页 第页 VC 函 数 详 解 函数名 : clearerr 所属库名: 函数功能: 清除并且复位某个数据流的错误消息 使用方法: void clearerr( FILE *stream ); 范 例: 这个例子中实现了检测能否从标准输入设备(stdin)读入字符: char c; c=getc(stdin); if( ferror(stdin)) { perror("error"); clearerr(stdin); } 函数名 : clock 所属库名: 函数功能: 返回处理器调用某个进程或函数所花费的时间 使用方法: clock_t clock( void ); 范 例: 这个例子中实现了计算电脑执行100万次for语句所用的时间time: long n=1000000L; double time; clock_t Start,Finish; Start=clock( ); for( ;n--;) { ; } Finish=clock( ); time = (double)(Finish-Start)/CLOCKS_PER_SEC; 函数名 : cos 所属库名: 函数功能: 计算并且返回一个表达式的余弦值 使用方法: double cos( double x ); 范 例: 这个例子可以计算180度角的余弦值: double PI=3.14,Value; Value=cos(PI); 函数名 : cosh 所属库名: 函数功能: 计算并且返回一个表达式的双曲余弦值 使用方法: double cosh( double x ); 范 例: 和cos函数类似 共149页 第页 VC 函 数 详 解 函数名 : ctime 所属库名: 函数功能: 把一个time_t型的时间值转换为一个字符串,并且根据当地的时区设置对字符串进行调整 使用方法: char *ctime( const time_t *timer ); 范 例: 这个例子中可以显示当地时间: time_t ltime; time(<ime); printf( "The time is %s\n", ctime( <ime ) ); 函数名 : difftime 所属库名: 函数功能: 返回两个time_t型变量之间的时间间隔 使用方法: double difftime( time_t timer1, time_t timer0 ); 范 例: 这个例子中实现了计算电脑执行100万次for语句所需的时间: clock_t Start,Finish; long n=1000000L; double Elapse; time(&Start); for( ; n--; ) { ; } time(&Finish); Elapsed= difftime(Finish,Start); 函数名 : div 所属库名: 函数功能: 计算并且返回两个整数进行除法操作后的商和余数 使用方法: div_t div( int numer, int denom ); 范 例: 计算35/6的商和余数: int x=35,y=6; div_t a; a= div(x,y); cout<<"商是:"< or 函数功能: 进行清除操作(释放已占用的内存空间等),并且终止当前进程 使用方法: void exit( int status ); 范 例: 这个例子中如果用户按下y键,则执行清除操作,并且终止当前进程: int button; _cputs("Yes or No?"); button=_getch(); if(toupper(button)=='y') exit(0); 共135页 第页 VC 函 数 详 解 函数名 : exp 所属库名: 函数功能: 计算并且返回自然对数的底(e)的指定次方 使用方法: double exp( double x ); 范 例: 这个例子中计算了以e为底的x次方的值: void main( void ) { double x = 2.302585093, y; y = exp( x ); printf( "exp( %f ) = %f\n", x, y ); } 函数名 : fabs 所属库名: 函数功能: 计算并且返回double型参数x的值 使用方法: double fabs( double x ); 范 例: 和abs函数类似 函数名 : fclose 所属库名: 函数功能: 关闭某个已经打开的数据流,若成功则返回0,否则返回eof 使用方法: int fclose( FILE *stream ); 范 例: 这个例子中实现了打开并且关闭文件sample.txt: FILE *p; if((p = fopen("sample.txt","r"))==NULL) cout<<"文件打开失败"; else { cout<<"文件已经打开"; fclose(p); } 函数名 : feof 所属库名: 函数功能: 测试文件指针是否指向数据流的尾部,若是则返回0,否则返回-1 使用方法: int feof( FILE *stream ); 范 例: 这个例子中打开文件sample.txt,每次读取10个字节,直到所以的字节被读完为止: FILE *p; int count,Size=0; char Buffer[10]; if((p = fopen("sample.txt","r"))==NULL) exit(1); while (!feof(p)) { Count =fread (Buffer,sizeof(char),10,p); if (ferror(p)) { perror("出错!"); b 共149页 第页 VC 函 数 详 解 函数名 : ferror 所属库名: 函数功能: 测试某个数据流有没有错误,若有错则返回0,否则返回一个非0值 使用方法: int ferror( FILE *stream ); 范 例: 请参看feof函数 函数名 : fflush 所属库名: 函数功能: 清除某个数据流,并且把其中的数据写如文件或设备,若清除成功则返回0,否则返回eof 使用方法: int fflush( FILE *stream ); 范 例: 这个例子实现了清除键盘缓冲区: char Buffer[100]; cout<<"Please input:"; fflush(stdin); gets(Buffer); 函数名 : fgetc 所属库名: 函数功能: 从某个数据流中读取一个字符,若成功则返回所读取的字符,否则返回EOF 使用方法: int fgetc( FILE *stream ); 范 例: 这个例子中从文件sample.txt中获得了第一个字符: FILE *Stream; int Character; Stream=fopen("sample.txt","r"); Character=fgetc(Stream); fclose(Stream); 函数名 : fgetpos 所属库名: 函数功能: 获取某个数据流的位置指针的数值,若成功则返回0,否则返回一个非0值 使用方法: int fgetpos( FILE *stream, fpos_t *pos ); 范 例: 这个例子中从文件sample.txt中读取10个字符后,显示当前字节位置: FILE *Stream; char Buffer=[15]; fpos_t Position; if((Stream=fopen("sample.txt","rb"))!=NULL) { fread(Buffer,sizeof(char),10,Stream); if(fgetpos(Stream,&Position)==0) out<<"当前字节的位置为:"< 函数功能: 从某个数据流中读取一个字符串,若成功则返回该字符串,否则返回NULL 使用方法: char *fgets( char *string, int n, FILE *stream ); 范 例: 这个例子中从文件sample.txt中获得了前10个字符(一个长度为10的字符串): FILE *Stream; char Buffer[15]; if((Stream=fopen("sample.txt","r"))!=NULL) { if (fgets(Buffer,10,Stream)!=NULL) cout< or 函数功能: 从某个数据流中读取一个字符,若成功则返回该字符,否则返回WEOF 使用方法: wint_t fgetwc( FILE *stream ); 范 例: 和fgetc函数类似 函数名 : fgetws 所属库名: or 函数功能: 从某个数据流中读取一个字符串,若成功则返回字符串,否则返回NULL 使用方法: wchar_t *fgetws( wchar_t *string, int n, FILE *stream ); 范 例: 和fgets函数类似 函数名 : floor 所属库名: 函数功能: 返回小于或者等于指定表达式的最大整数 使用方法: double floor( double x ); 范 例: 这个例子中变量x的值为3: int x; x=floor(3.435545); 函数名 : fmod 所属库名: 共149页 第页 VC 函 数 详 解 函数功能: 执行除法操作,返回的值为余数 使用方法: double fmod( double x, double y ); 范 例: 这个例子中变量x的值为3.0 : double a=7.0,b=4.0,x; x=fmod(a,b); 函数名 : fopen 所属库名: 函数功能: 打开一个文件 使用方法: FILE *fopen( const char *filename, const char *mode ); 范 例: 请参看fclose函数 函数名 : fprintf 所属库名: 函数功能: 把格式化的数据写入一个数据流 使用方法: int fprintf( FILE *stream, const char *format [, argument ]…); 范 例: 这个例子将使用函数fprintf执行输出操作: FILE *Stream; char a[]="Hello!"; Stream=fopen("sample.txt","w"); fprintf(Stream,"%s",a); fclose(Stream); 函数名 : fputc 所属库名: 函数功能: 把一个字符写入一个数据流,若成功则返回写入的字符数,否则返回EOF 使用方法: int fputc( int c, FILE *stream ); 范 例: 这个例子中在显示器上显示了一个字符串string:   char string[ ]="helloeverybody"; char *p; p=string; while((*p!='\0')&&fputc(*(p++),stdout)!=EOF) {;} 函数名 : fputs 所属库名: 函数功能: 把一个字符串写入一个数据流,若成功则返回一个正数,否则返回EOF 使用方法: int fputs( const char *string, FILE *stream ); 范 例: 共135页 第页 VC 函 数 详 解 这个例子实现了在显示器上显示一个字符串: fputs("Hello!",stdout); 函数名 : fputwc 所属库名: or 函数功能: 把一个字符写入一个数据流,若成功则返回写入的字符数,否则返回WEOF 使用方法: wint_t fputwc( wint_t c, FILE *stream ); 范 例: 和fputc函数类似 函数名 : fputws 所属库名: or 函数功能: 把一个字符串写入一个数据流,若成功则返回一个正数,否则返回EOF 使用方法: int fputws( const wchar_t *string, FILE *stream ); 范 例: 和fputs函数类似 函数名 : fread 所属库名: 函数功能: 从一个数据流中读取数据 使用方法: size_t fread( void *buffer, size_t size, size_t count, FILE *stream ); 范 例: 请参看feof函数 函数名 : free 所属库名: and 函数功能: 释放已经建立的内存空间 使用方法: void free( void *memblock ); 范 例: 这个例子中首先开辟了一块内存空间,然后释放: char *Buffer; Buffer=malloc(500); free(Buffer); 函数名 : freopen 所属库名: 函数功能: 重新分配文件指针 共149页 第页 VC 函 数 详 解 使用方法: FILE *freopen( const char *path, const char *mode, FILE *stream ); 范 例: 这个例子中给标准错误设备stderr重新分配了一个文件指针,用文件errmsg.txt代替stderr: FILE *Stream ; Stream=freopen("errmsg.txt","w",stdeer); 函数名 : frexp 所属库名: 函数功能: 返回double型数字的尾部和指数 使用方法: double frexp( double x, int *expptr ); 范 例: 这个例子中变量x是指数形式的, double x=1e-5,y; int n; y=frexp(x,&n); 函数名 : fscanf 所属库名: 函数功能: 从一个数据流中读取格式化的数据 使用方法: int fscanf( FILE *stream, const char *format [, argument ]… ); 范 例: 这个例子中把“hello”写进文件sample.txt,然后把它读出来:  FILE *stream; char a[40]; stream=fopen("sample.txt","w+"); fprintf(stream,"%s","hello"); fseek(stream,0L,SEEK_SET);  fscanf(stream,"%s",a); printf("%s",a); fclose(stream);} 函数名 : fseek 所属库名: 函数功能: 把文件指针移动到指定的位置,若成功则返回0,否则返回一个非0值 使用方法: int fseek( FILE *stream, long offset, int origin ); 范 例: 请参看fscanf函数 函数名 : fsetpos 所属库名: 函数功能: 设置某个数据流的位置指针,若成功则返回0,否则返回一个非0值 使用方法: int fsetpos( FILE *stream, const fpos_t *pos ); 范 例: 这个例子中文件指针被移动了: FILE *Stream; fpos_t Position =12; char Buffer[10]; Stream=fopen("sample.txt","rb"); fsetpos(Stream 共149页 第页 VC 函 数 详 解 ,&Position); 函数名 : ftell 所属库名: 函数功能: 返回文件指针的当前位置 使用方法: long ftell( FILE *stream ); 范 例: 这个例子中从文件sample.txt读取了10个字符,然后返回文件指针的当前位置: FILE *Stream; char Buffer[20]; long Position; if((Stream=fopen("sample.txt","rb"))!=NULL) { fread(Buffer,sizeof(char), 20, Stream); Position =ftell(Stream); cout< or 函数功能: 把格式化的数据写入一个数据流 使用方法: int fwprintf( FILE *stream, const wchar_t *format [, argument ]…); 范 例: 和fprintf函数类似 函数名 : fwrite 所属库名: 函数功能: 把数据写入一个数据流 使用方法: size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream ); 范 例: 这个例子中实现了把从A到Z的26个字符写入文件sample.txt: FILE *Stream; int Count; char Buffer[30]; Stream=fopen("sample.txt","w+t"); Buffer[0]='A'; for(I=1; I<=25;I++) { Buffer[I]=Buffer[I-1]+1; } Count= fwrite(Buffer,sizeof(char),26,Stream); cout< or 函数功能: 从一个数据流中读取格式化的数据 使用方法: int fwscanf( FILE *stream, const wchar_t *format [, argument ]… ); 范 例: 和fscanf函数类似 共149页 第页 VC 函 数 详 解 函数名 : getc 所属库名: 函数功能: 从某个数据流中读取一个字符 使用方法: int getc( FILE *stream ); 范 例: 和getchar函数类似 函数名 : getchar 所属库名: 函数功能: 从标准输入设备(stdin)中读取一个字符 使用方法: int getchar( void ); 范 例: 这个例子中实现了从键盘输入20个字符: char Buffer[25]; int Count; char x; for( Count=0; Count<=20 && (x=getchar()!=EOF) ; Count++) { Buffer[Count]=x; } Buffer[Count]='\0'; cout< 函数功能: 从当前环境返回一个环境变量的内容 使用方法: char *getenv( const char *varname ); 范 例: 这个例子中返回了当前环境中LIB环境变量的内容:   char *LibVar; if((LibVar = getenv("LIB"))!=NULL) cout<<"LIB环境变量的内容是:"< 函数功能: 从标准输入设备上读取一行字符 使用方法: char *gets( char *buffer ); 范 例: 这个例子中实现了从键盘上输入一行文字然后把它们显示出来:   char Line[255]; cout<<"Please input:< or 函数功能: 从某个数据流中读取一个宽字符 使用方法: wint_t getwc( FILE *stream ); 范 例: 和getc函数类似 函数名 : getwchar 所属库名: or 函数功能: 从标准输入设备(stdin)中读取一个宽字符 使用方法: wint_t getwchar( void ); 范 例: 和getchar函数类似 函数名 : gmtime 所属库名: 函数功能: 把一个time_t类型的数据转换为tm类型 使用方法: struct tm *gmtime( const time_t *timer ); 范 例: 这个例子中实现了以“星期、年月日、时分秒”的形式显示当前时间:   long LocalTime; struct tm *GlobalTime; time(&LocalTime); GlobalTime=gmtime(&LocalTime); cout< 函数功能: 若参数c是一个字母或者一位数字,则返回一个非0值,否则返回0 使用方法: int isalnum( int c ); 范 例: 这个例子实现了判别从键盘输入的字符是否为字母或数字: char x; int y; x=_getch( ); y=isalnum(x); if(y==0) cout<<"输入的字符既不是字母也不是数字"; else cout<<"输入的字符是字母或者数字"; 共149页 第页 VC 函 数 详 解 函数名 : isalpha 所属库名: 函数功能: 若参数c是一个字母,则返回一个非0值,否则返回0 使用方法: int isalpha( int c ); 范 例: 和isalnum函数类似 函数名 : iscntrl 所属库名: 函数功能: 若参数c是一个控制字符(0x00-0x1F,或者为0x7f),则返回一个非0值,否则返回0 使用方法: int iscntrl( int c ); 范 例: 和isalnum函数类似 函数名 : isdigit 所属库名: 函数功能: 若参数c是一个十进制的数字,则返回一个非0值,否则返回0 使用方法: int isdigit( int c ); 范 例: 和isalnum函数类似 函数名 : isgraph 所属库名: 函数功能: 若参数是一个可打印字符(不包括空格),则返回一个非0值,否则返回0 使用方法: int isgraph( int c ); 范 例: 和isalnum函数类似 函数名 : isleadbyte 所属库名: 函数功能: 若参数c是某个多字节字符的第一个字节,则返回一个非0值,否则返回0 使用方法: int isleadbyte( int c ); 共135页 第页 VC 函 数 详 解 范 例: 和isalnum函数类似 函数名 : islower 所属库名: 函数功能: 若参数c是一个小写字母,则返回一个非0值,否则返回0 使用方法: int islower( int c ); 范 例: 和isalnum函数类似 函数名 : isprint 所属库名: 函数功能: 若参数c是一个可打印字符(包括空格,即0x20-0x7E),则返回一个非0值,否则返回0 使用方法: int isprint( int c ); 范 例: 和isalnum函数类似 函数名 : ispunct 所属库名: 函数功能: 若参数c是一个可打印的标点字符(除空格、字母、数字以外的其它可打印字符),则返回一个非0值,否则返回0 使用方法: int ispunct( int c ); 范 例: 和isalnum函数类似 函数名 : isspace 所属库名: 函数功能: 若参数c是一个空格字符(0x90-0x0D,或者0x20),则返回一个非0值,否则返回0 使用方法: int isspace( int c ); 范 例: 和isalnum函数类似 共149页 第页 VC 函 数 详 解 函数名 : isupper 所属库名: 函数功能: 若参数c是一个大写字母,则返回一个非0值,否则返回0 使用方法: int isupper( int c ); 范 例: 和isalnum函数类似 函数名 : iswalnum 所属库名: 函数功能: 若参数c是一个字母字符或数字字符,则返回一个非0值,否则返回0,本函数只适用于宽字符编程 使用方法: int isalnum( int c ); 范 例: 和isalnum函数类似 函数名 : iswalpha 所属库名: or 函数功能: 若参数c是一个字母,则返回一个非0值,否则返回0,本函数只适用于宽字符编程 使用方法: int iswalpha( wint_t c ); 范 例: 和isalnum函数类似 函数名 : iswascii 所属库名: or 函数功能: 若参数c是一个ASCII 字符(0x00-0x7f),则返回一个非0值,否则返回0,本函数只适用于宽字符编程 使用方法: int iswascii( wint_t c ); 范 例: 和isalnum函数类似 函数名 : iswcntrl 所属库名: or 共135页 第页 VC 函 数 详 解 函数功能: 若参数c是一个控制字符(0x00-0x1F,或者为0x7f),则返回一个非0值,否则返回0,本函数只适用于宽字符编程 使用方法: int iswcntrl( wint_t c ); 范 例: 和isalnum函数类似 函数名 : iswctype 所属库名: or 函数功能: 若参数c具有参数desc指定的属性,则返回一个非0值,否则返回0,本函数只适用于宽字符编程 使用方法: int iswctype( wint_t c, wctype_t desc ); 范 例: 和isalnum函数类似 函数名 : iswdigit 所属库名: or 函数功能: 若参数c是一个十进制的数字,则返回一个非0值,否则返回0,本函数只适用于宽字符编程 使用方法: int iswdigit( wint_t c ); 范 例: 和isalnum函数类似 函数名 : iswgraph 所属库名: or 函数功能: 若参数是一个可打印字符(不包括空格),则返回一个非0值,否则返回0,本函数只适用于宽字符编程 使用方法: int iswgraph( wint_t c ); 范 例: 和isalnum函数类似 函数名 : iswlower 所属库名: or 函数功能: 若参数c是一个小写字母,则返回一个非0值,否则返回0,本函数只适用于宽字符编程 使用方法: int iswlower( wint_t c ); 共149页 第页 VC 函 数 详 解 范 例: 和isalnum函数类似 函数名 : iswprint 所属库名: or 函数功能: 若参数c是一个可打印字符(包括空格,即0x20-0x7E),则返回一个非0值,否则返回0,本函数只适用于宽字符编程 使用方法: int iswprint( wint_t c ); 范 例: 和isalnum函数类似 函数名 : iswpunct 所属库名: or 函数功能: 若参数c是一个可打印的标点字符(除空格、字母、数字以外的其它可打印字符),则返回一个非0值,否则返回0,本函数只适用于宽字符编程 使用方法: int iswpunct( wint_t c ); 范 例: 和isalnum函数类似 函数名 : iswspace 所属库名: or 函数功能: 若参数c是一个空格字符(0x90-0x0D,或者0x20),则返回一个非0值,否则返回0,本函数只适用于宽字符编程 使用方法: int iswspace( wint_t c ); 范 例: 和isalnum函数类似 函数名 : iswupper 所属库名: or 函数功能: 若参数c是一个大写字母,则返回一个非0值,否则返回0,本函数只适用于宽字符编程 使用方法: int iswupper( wint_t c ); 范 例: 和isalnum函数类似 共135页 第页 VC 函 数 详 解 函数名 : iswxdigit 所属库名: or 函数功能: 若参数c是一个十六进制数字,则返回一个非0值,否则返回0。本函数只适用于宽字符编程 使用方法: int iswxdigit( wint_t c ); 范 例: 和isalnum函数类似 函数名 : isxdigit 所属库名: 函数功能: 若参数c是一个十六进制数字,则返回一个非0值,否则返回0 使用方法: int isxdigit( int c ); 范 例: 和isalnum函数类似 函数名 : labs 所属库名: and 函数功能: 计算某个long型数据的绝对值 使用方法: long labs( long n ); 范 例: 和abs函数类似 函数名 : ldexp 所属库名: 函数功能: 根据已经指定的尾数和指数,计算并且返回一个实数 使用方法: double ldexp( double x, int exp ); 范 例: 这个例子计算了3的6次方: double x=3.0; double y; int p=6; y=ldexp(x,p); cout<<"3的6次方等于:"< 函数功能: 执行long型除法操作,把商和余数返回 使用方法: ldiv_t ldiv( long int numer, long int denom ); 共149页 第页 VC 函 数 详 解 范 例: 这个例子中计算并且把x/y的商和余数显示出来: long x=355678,y=346567; ldiv_t Result; Result=ldiv(x,y); cout<<"商等于:"< 函数功能: 返回当前地域设置的信息 使用方法: struct lconv *localeconv( void ); 范 例: 这个例子中返回了当地货币符号: lconv *x; x=localeconv( ); cout< 函数功能: 把一个时间数据转换为当地时区的时间,若时间在1970年1月1日之前,返回NULL 使用方法: struct tm *localtime( const time_t *timer ); 范 例: 请参看asctime函数 函数名 : log 所属库名: 函数功能: 计算double型参数x的对数,若x是0则返回INF,若x是负数,则返回NaN 使用方法: double log( double x ); 范 例: 这个例子中计算了x的对数: double x=4500,y; y=log(x); 函数名 : log10 所属库名: 函数功能: 计算double型参数x的以10为底的对数,若x是0则返回INF,若x是负数,则返回NaN 使用方法: double log10( double x ); 范 例: 和log函数类似 共135页 第页 VC 函 数 详 解 函数名 : longjmp 所属库名: 函数功能: 恢复setjmp函数原来存储的堆栈环境 使用方法: void longjmp( jmp_buf env, int value ); 范 例: 请参看_fpreset函数 函数名 : malloc 所属库名: and 函数功能: 分配一块内存区域,若成功则返回指向该区域的指针,否则返回NULL 使用方法: void *malloc( size_t size ); 范 例: 这个例子中分配了一块内存区域,然后把它释放: char * x; x=malloc(_MAX_PATH); free(x); 函数名 : mblen 所属库名: 函数功能: 返回某个多字节字符的长度,并且检查该字符的有效性,若参数mbstr不为NULL,则返回该字符的字节长度,否则返回0 使用方法: int mblen( const char *mbstr, size_t count ); 范 例: 和_mbclen函数类似 函数名 : mbstowcs 所属库名: 函数功能: 把一组多字节字符转换为对应的宽字符,若成功则返回被转换的字符的数量,否则返回-1 使用方法: size_t mbstowcs( wchar_t *wcstr, const char *mbstr, size_t count ); 范 例: 这个例子中通过mbstowcs和wcstombs两个函数把多字节字符和宽字符互相转换:  char *mstring=(char *)malloc(MB_CUR_MAX); wchar_t *wstring=L"hello"; wchar_t *wp=(wchar_t *)malloc(sizeof(wchar_t)); wcstombs(mstring,wstring,MB_CUR_MAX); mbstowcs(wp,mstring,MB_CUR_MAX); 共149页 第页 VC 函 数 详 解 函数名 : mbtowc 所属库名: 函数功能: 把一个多字节字符转换为宽字符,若成功则返回被转换字符的长度,否则返回-1 使用方法: int mbtowc( wchar_t *wchar, const char *mbchar, size_t count ); 范 例: 这个例子中实现了多字节字符和宽字符之间的转换: char *x=(char *)malloc(sizeof(wchar_t)); wchar_t y=L'a'; wchar_t *z=(wchar_t *)malloc(sizeof(wchar_t)); cout<<"把宽字符转换为多字节字符:"< or 函数功能: 查找一个缓冲区中的字符 使用方法: void *memchr( const void *buf, int c, size_t count ); 范 例: 这个例子中实现了在字符串string中查找字符v,若找到,则显示该字符的位置: char string[]="Hello,everybody"; char x='v'; int y; char *Pointer; Pointer=memchr(String,x,sizeof(String)); y=Pointer-String+1; cout<<"该字符的位置为"< or 函数功能: 比较两个缓冲区中的字符 使用方法: int memcmp( const void *buf1, const void *buf2, size_t count ); 范 例: 这个例子中比较了两个字符串中前10个字符的大小: char String1[ ]="12345678901234567890"; char String2[ ]="12345678900987654321"; int x; x=memcmp(String1,String2); if(x==0) cout<<"这两个字符串的前十个字符相同"< or 函数功能: 在缓冲区之间拷贝字符 使用方法: void *memcpy( void *dest, const void *src, size_t count ); 范 例: 这个例子中把字符串中间的dog换成了后面的fox:   char string[80]="the quick brown dog jumps over the lazy fox"; memcpy(string+16,string+40,3); 共135页 第页 VC 函 数 详 解 函数名 : memmove 所属库名: 函数功能: 把一个缓冲区中的字符移动到另一个缓冲区 使用方法: void *memmove( void *dest, const void *src, size_t count ); 范 例: 这个例子中把字符串string的内容改变了:   cahr string[80]="the quick brown dog jumps over the lazy fox"; memmove(string+10,string+4,40); 函数名 : memset 所属库名: or 函数功能: 设置缓冲区为一个指定的字符 使用方法: void *memset( void *dest, int c, size_t count ); 范 例: 这个例子中字符串string从原来的10个1变成了5个2和5个1: char string[]="1111111111"; memset(string,'2',5); 函数名 : mktime 所属库名: 函数功能: 转换本地时间为日历值,若当地时间在1970年1月1日午夜之前,则返回time_t类型的-1 使用方法: time_t mktime( struct tm *timeptr ); 范 例: 这个例子将显示当前的时间和日期: time_t Now,Result; struct tm LocalTime; time(&Now); LocatTime-*locatimt(&Now); Result=mktime(&LocalTime); cout<<"当前的时间和日期是:"< 函数功能: 把一个浮点数分解为小数和整数部分 使用方法: double modf( double x, double *intptr ); 范 例: 这个例子中把double型变量x分解成了小数和整数两个部分: double x=34.656; double y,n; y=modf(x,&n) //n为整数部分,y为小数部分 共149页 第页 VC 函 数 详 解 函数名 : offsetof 所属库名: 函数功能: 检索一个成员距它的父结构开头的偏移量 使用方法: size_t offsetof( structName, memberName ); 范 例: 这个例子返回了第二个结构成员width相对于结构rectangle开始处的偏移量: struct rectangle{ float length; float width; float area; } size_t x; x=offsetof(rectangle,width); 函数名 : perror 所属库名: or 函数功能: 输出一个出错信息 使用方法: void perror( const char *string ); 范 例: 这个例子中若文件sample.txt不能被打开,则输出一条出错信息: int Handle; if((Handle=_open("sample.txt",_O_RDONLY))==-1) perror("试图打开文件出错"); else { cout<<"文件已经被打开"< 函数功能: 计算x的y次幂 使用方法: double pow( double x, double y ); 范 例: 这个例子中计算了8的2次方: double x=8, y=2; double z; z=pow(x,y); 函数名 : printf 所属库名: 函数功能: 把格式化的数据输出到标准输出流 使用方法: int printf( const char *format [, argument]… ); 范 例: 这个例子中输出了hello!: char *String="hello!"; printf("%s",String); 共135页 第页 VC 函 数 详 解 函数名 : purchar 所属库名: 函数功能: 把一个字符输出到标准输出设备(stdout),若成功则返回被输出的字符,否则返回EOF 使用方法: int putchar(int c); 范 例: 和putc函数类似 函数名 : putc 所属库名: 函数功能: 把一个字符输出到一个数据流,若成功则返回被输出的字符,否则返回EOF 使用方法: int putc( int c, FILE *stream ); 范 例: 这个例子中把字符a输出: FILE *Stream; int x='a'; Stream=stdout; putc(x,Stream); 函数名 : puts 所属库名: 函数功能: 写一个字符串到标准输出设备(stdout) 使用方法: int puts( const char *string ); 范 例: 和putc函数类似 函数名 : putwc 所属库名: or 函数功能: 写一个宽字符到一个数据流 使用方法: wint_t putwc( wint_t c, FILE *stream ); 范 例: 和putc函数类似 函数名 : putwchar 所属库名: or 函数功能: 写一个宽字符到标准输出设备(stdout) 使用方法: wint_t putwchar( wint_t c ); 共149页 第页 VC 函 数 详 解 范 例: 和putchar函数类似 函数名 : qsort 所属库名: and 函数功能: 对一个数字数组进行快速排序 使用方法: void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *elem1, const void *elem2 ) ); 范 例: 这个例子把一组英文单词进行排序: void main(int argc,char **argv) { int count; argv++; argc--; qsort((void *)argv,(size_t)argc,sizeof(char *),compare); for(count=0;count 函数功能: 发送一个信号给正在执行的程序,若成功则返回0,否则返回一个非0值 使用方法: int raise( int sig ); 范 例: 这个例子中raise函数发送了键盘中断信息: raise(SIGINT); 函数名 : rand 所属库名: 函数功能: 产生一个伪随机数 使用方法: int rand( void ); 范 例: 这个例子可以产生一个在10到100之间的随机数: int x; srand((unsigned)time(NULL); for(x=10; x<=100; x++) cout<< rand( )< and 函数功能: 重新分配存储器块,若成功则返回指向该存储器块的指针,否则返回NULL 使用方法: void *realloc( void *memblock, size_t size ); 范 例: 这个例子中内存区域buffer的大小从存放100个整数改为能存放500个整数: int *buffer; buffer=(int *)malloc(100 * sizeof(int)); buffer=r 共149页 第页 VC 函 数 详 解 ealloc(buffer,500 * sizeof(int)); 函数名 : remove 所属库名: or 函数功能: 删除一个文件,若成功则返回0,否则返回-1 使用方法: int remove( const char *path ); 范 例: 这个例子中把文件sample.txt给删除了: remove("sample.txt"); 函数名 : rename 所属库名: or 函数功能: 给一个文件或目录改名 使用方法: int rename( const char *oldname, const char *newname ); 范 例: 这个例子中把文件sample.txt改名为samp.txt: char old[ ]="sample.txt",new[ ]="samp.txt"; int x; x=rename(old,new); 函数名 : rewind 所属库名: 函数功能: 把文件指针重新定位到文件的开头 使用方法: void rewind( FILE *stream ); 范 例: 这个例子把文件指针p移动到了文件首部: FILE *p; … rewind(p); 函数名 : scanf 所属库名: 函数功能: 从标准输入流(stdin)读取格式化数据 使用方法: int scanf( const char *format [,argument]… ); 范 例: 这个例子中从键盘读取了一个字符串: char String[40]; scnaf("%s",String); 共149页 第页 VC 函 数 详 解 函数名 : set_terminate 所属库名: 函数功能: 安装用户自己的通过终止调用的终止操作函数 使用方法: typedef void (*terminate_function)(); terminate_function set_terminate( terminate_function term_func ); 范 例: 这个例子中的函数ownfunc就是用户自己的终止操作函数:  void main() { int x=3,y=0,z; set_terminate(ownfunc); try{ if(y==0) throw"除数为0"; else z=x/y; catch(int) { cout<<"出现异常"; } } void ownfunc( ) { exit(-1);} 函数名 : set_unexpected 所属库名: 函数功能: 允许用户安装自己的终止操作函数 使用方法: typedef void (*unexpected_function)();  unexpected_function set_unexpected( unexpected_function unexp_func ); 范 例: 和set_terminate函数类似 函数名 : setbuf 所属库名: 函数功能: 若参数buffer不为NULL则为数据流提供缓冲区 使用方法: void setbuf( FILE *stream, char *buffer ); 范 例: 这个例子中给一个数据流提供了缓冲区: FILE *Stream; char Buffer[BUFSIZE]; Stream=fopen("sample.txt","a"); setbuf(Stream,Buffer); _fclose(Stream); 函数名 : setjmp 所属库名: 函数功能: 保存程序的当前状态(堆栈环境),若成功则返回0 使用方法: int setjmp( jmp_buf env ); 范 例: 请参看_fpreset函数 共135页 第页 VC 函 数 详 解 函数名 : setlocale 所属库名: 函数功能: 设置、改变或返回当前的地域信息,若成功则返回一个指向地域信息字符串的指针 使用方法: char *setlocale( int category, const char *locale ); 范 例: 这个例子中把所有的地域信息设置为English格式: setlocale(LC_ALL,"English"); 函数名 : setvbuf 所属库名: 函数功能: 控制一个数据流的缓冲方式和缓冲区的大小 使用方法: int setvbuf( FILE *stream, char *buffer, int mode, size_t size ); 范 例: 这个例子中的常量_IOFBF表示完全缓冲方式:   FILE *stream; char buffer[2048]; stream=fopen("sample.txt","a"); setvbuf(stream,buffer,_IOFBF,sizeof(buffer)); cout<<"为数据流stream提供了缓冲区buffer:"; _fclose(stream); 函数名 : signal 所属库名: 函数功能: 设置中断信号处理函数 使用方法: void ( *signal( int sig, void (__cdecl *func) ( int sig [, int subcode ] )) ) ( int sig ); 范 例: 请参看_fpreset函数 函数名 : sin 所属库名: 函数功能: 计算正弦值 使用方法: double sin( double x ); 范 例: 和cos函数类似 函数名 : sinh 所属库名: 共149页 第页 VC 函 数 详 解 函数功能: 计算双曲正弦值 使用方法: double sinh( double x ); 范 例: 和cosh函数类似 函数名 : sprintf 所属库名: 函数功能: 把格式化的数据写入某个字符串 使用方法: int sprintf( char *buffer, const char *format [, argument] … ); 范 例: 这个例子中向字符串string中写入了字符'a':   char x='a'; char string[10]; sprintf(string,"%c\n",x); 函数名 : sqrt 所属库名: 函数功能: 求参数x的平方根 使用方法: double sqrt( double x ); 范 例: 这个例子中y的值为3:  double x=9,y; y=sqrt(x); 函数名 : srand 所属库名: 函数功能: 为生成的一组伪随机整数设置启始点 使用方法: void srand( unsigned int seed ); 范 例: 请参看rand函数 函数名 : sscanf 所属库名: 函数功能: 从某个字符串中读取格式化的数据 使用方法: int sscanf( const char *buffer, const char *format [, argument ] … ); 范 例: 这个例子中从字符串string中读取数据: char string[ ]="112345"; char x[20]; sscanf(string,"%s",s); 共135页 第页 VC 函 数 详 解 函数名 : strcat 所属库名: 函数功能: 把一个字符串添加到另一个字符串的尾部,本函数只适用于宽字符编程 使用方法: char *strcat( char *strDestination, const char *strSource ); 范 例: 和strcpy函数类似 函数名 : strchr 所属库名: 函数功能: 在字符串string中搜索字符c,若成功则返回一个指向该字符第一次出现的位置,否则返回NULL 使用方法: char *strchr( const char *string, int c ); 范 例: 这个例子中的变量x的值为5:char string[]="hello"; char *p; int x; p=strchr(string,'o');  x=p-string+1; 函数名 : strcmp 所属库名: 函数功能: 比较字符串string1和字符串string2,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int strcmp( const char *string1, const char *string2 ); 范 例: 这个例子中把字符串string1和string2进行了比较:   char string[ ]="123456"; char string2[ ]="1234567"; int x; x=strcmp(string1,string2); 函数名 : strcoll 所属库名: 函数功能: 根据当前的代码页信息和地域信息,按照大小写匹配,核对字符串string1和字符串string2,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int strcoll( const char *string1, const char *string2 ); 范 例: 和strnicmp函数类似 共149页 第页 VC 函 数 详 解 函数名 : strcpy 所属库名: 函数功能: 把一个字符串复制到另一个字符串中 使用方法: char *strcpy( char *strDestination, const char *strSource ); 范 例: 这个例子中字符串string的内容为“helloeverybody”: char *string="hello"; strcpy(string,"everybody"); 函数名 : strcspn 所属库名: 函数功能: 返回字符串strCharSet所属字符在字符串string中第一次出现的位置 使用方法: size_t strcspn( const char *string, const char *strCharSet ); 范 例: 这个例子中变量x的值为5: char string1[]="helloeverybody"; size_t x; x=strcspn(string,"everybody"); 函数名 : strerror 所属库名: 函数功能: 显示一个用户提供的错误信息 使用方法: char *strerror( int errnum ); 范 例: 这个例子中若文件打开失败,则显示错误信息: int fh; if(fh=(_open("sample.txt",_O_RDONLY))==-1) { printf("文件打开失败:%s\n",strerror(errno)); printf(_strerror("文件打开失败"); } else _close(fh); 函数名 : strftime 所属库名: 函数功能: 格式化一个时间字符串 使用方法: size_t strftime( char *strDest, size_t maxsize, const char *format, const struct tm *timeptr ); 范 例: 这个例子中将以“星期-日-月-年”的格式显示当前日期: time_t LocalTime; struct tm *Today; char Buffer[150],Format[]="今天的日期是:%A %d %B %Y"; time(&LocalTime); Today=localtime(&LocalTime); strftime(Buffer,150,format,Today); cout< 函数功能: 获取一个字符串的长度 使用方法: size_t strlen( const char *string ); 范 例: 这个例子中变量x的值为5: char string[]="hello"; x=strlen(string); 函数名 : strncat 所属库名: 函数功能: 把字符串strSource中指定数量的字符添加到字符串strDest的尾部, 使用方法: char *strncat( char *strDest, const char *strSource, size_t count ); 范 例: 这个例子中字符串string1的值被改变为"helloeverybody": char string1[30]="hello"; char string2[]="everybody"; strncat(string1,string2,9); 函数名 : strncmp 所属库名: 函数功能: 把第一个字符串string1中指定数量的字符和第二个字符串string2进行比较,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int strncmp( const char *string1, const char *string2, size_t count ); 范 例: 这个例子比较了两个字符串是否相等: char string1[]="12345"; char string2[]="123456"; int result; result=strncmp(string1,string2,5); 函数名 : strncpy 所属库名: 函数功能: 把指定数量的字符从src复制到dest 使用方法: char *strncpy( char *strDest, const char *strSource, size_t count ); 范 例: 这个例子中字符串string的前四个字符被改变了: char string[20]="cats are nice"; strncpy(string,"dogs",4); 共149页 第页 VC 函 数 详 解 函数名 : strpbrk 所属库名: 函数功能: 返回字符串strCharSet所属字符在字符串string中第一次出现的位置 使用方法: char *strpbrk( const char *string, const char *strCharSet ); 范 例: 这个例子中指针p的内容发生了改变:   char *p ; char string[]=" 函数名 : strrchr 所属库名: 函数功能: 检测字符c在字符串string中最后出现的位置, 使用方法: char *strrchr( const char *string, int c ); 范 例: 和strchr函数类似 函数名 : strspn 所属库名: 函数功能: 返回字符串string中不属于字符串strCharSet的第一个字符所在的位置 使用方法: size_t strspn( const char *string, const char *strCharSet ); 范 例: 和_strspnp函数类似 函数名 : strstr 所属库名: 函数功能: 在一个字符串string中搜索另一个字符串strCharSet,若成功则返回一个指向后者第一次出现的位置,否则返回NULL 使用方法: char *strstr( const char *string, const char *strCharSet ); 范 例: 这个例子中在字符串string中搜索字符"lo": char *string="hello"; char substring[ ]="lo"; char * x; x=strstr(string,substring); 函数名 : strtod 所属库名: 共135页 第页 VC 函 数 详 解 函数功能: 把一个字符串转换为一个double型数据 使用方法: double strtod( const char *nptr, char **endptr ); 范 例: 这个例子中把字符串string转换为double型数据,字符“abcd”不被转换:    char *string="123456789abcd"; char *stopstring; double y; y=strtod(string,&stopstring); 函数名 : strtok 所属库名: 函数功能: 在字符串中搜索指定的记号 使用方法: char *strtok( char *strToken, const char *strDelimit ); 范 例: 这个例子中在字符串string中搜索字符o:   char *string="hello"; char Token[]="o"; char *result; result=strtok(string,Token); 函数名 : strtol 所属库名: 函数功能: 把字符串转换为一个长整数 使用方法: long strtol( const char *nptr, char **endptr, int base ); 范 例: 这个例子中把字符串string转换为了长整型值,但是字符“abcd”不被转换:   char *string ="123456789abcd", *stopstring; long y; y=strtol(string ,stopstring,10); 函数名 : strtoul 所属库名: 函数功能: 把字符串转换为一个无符号长整数 使用方法: unsigned long strtoul( const char *nptr, char **endptr, int base ); 范 例: 和strtol函数类似 函数名 : strxfrm 所属库名: 函数功能: 根据当地的地域信息,把字符串strSource中指定数量的字符转换为字符串strDest,若成功则返回被转换字符串的长度,否则返回-1 共149页 第页 VC 函 数 详 解 使用方法: size_t strxfrm( char *strDest, const char *strSource, size_t count ); 范 例: 这个例子中在“c”场所中,strxfrm等价于下列语句: strncpy(_string1,_string2,_count); return(strlen(_string1)); 函数名 : swprintf 所属库名: or 函数功能: 把格式化的数据写到一个流中 使用方法: int swprintf( wchar_t *buffer, const wchar_t *format [, argument] … ); 范 例: 和sprintf函数类似 函数名 : swscanf 所属库名: or 函数功能: 从一个宽字符串中读取一个或一组格式化的数据 使用方法: int swscanf( const wchar_t *buffer, const wchar_t *format [, argument ] … ); 范 例: 和sscanf函数类似 函数名 : system 所属库名: or 函数功能: 执行一个外部命令 使用方法: int system( const char *command ); 范 例: 这个例子中显示了文件sample.txt中的内容: system("type c:\sample.txt"); 函数名 : tan 所属库名: 函数功能: 计算正切值 使用方法: double tan( double x ); 范 例: 和cos函数类似 共135页 第页 VC 函 数 详 解 函数名 : tanh 所属库名: 函数功能: 计算双曲正切值 使用方法: double tanh( double x ); 范 例: 和cosh函数类似 函数名 : terminate 所属库名: 函数功能: 调用abort或用户使用set_terminate函数指定的一个函数 使用方法: void terminate( void ); 范 例: 请参看set_terminate函数 函数名 : time 所属库名: 函数功能: 以秒为单位获取系统时间 使用方法: time_t time( time_t *timer ); 范 例: 请参看ctime函数 函数名 : tmpfile 所属库名: 函数功能: 创建一个临时文件 使用方法: FILE *tmpfile( void ); 范 例: 请参看_rmtmp函数 函数名 : tmpnam 所属库名: 函数功能: 生成一个临时文件名 使用方法: char *tmpnam( char *string ); 共149页 第页 VC 函 数 详 解 范 例: 这个例子中在当前目录中生成了一个临时文件名: char *name; name=tmpnam(NULL); 函数名 : tolower 所属库名: and 函数功能: 把指定字符转换为小写字母 使用方法: int tolower( int c ); 范 例: 和_tolower函数类似 函数名 : toupper 所属库名: and 函数功能: 把指定字符转换为大写字母 使用方法: int toupper( int c ); 范 例: 和_toupper函数类似 函数名 : towctrans 所属库名: 函数功能: 把指定字符转换为宽字符 使用方法: wint_t towctrans( wint_t c, wctrans_t category ); 范 例: 这个例子中把字符“hello”转换为宽字符:  win_t x,y; … x=towctrans(y,wctrans("hello")); 函数名 : towlower 所属库名: and 函数功能: 把指定宽字符转换为小写字母 使用方法: int tolower( int c ); 范 例: 和_tolower函数类似 共135页 第页 VC 函 数 详 解 函数名 : towupper 所属库名: or 函数功能: 把指定宽字符转换为大写字母 使用方法: int towupper( wint_t c ); 范 例: 和_toupper函数类似 函数名 : unexpected 所属库名: 函数功能: 调用terminate或用户使用set_unexpected函数指定的函数 使用方法: void unexpected( void ); 范 例: 和terminate函数类似 函数名 : ungetc 所属库名: 函数功能: 把一个字符放回到数据流中 使用方法: int ungetc( int c, FILE *stream ); 范 例: 这个例子中假设用户从键盘输入的数据为“456v”,“v”是字母,所以把它放回到键盘缓冲区:   int x,number=0; while(((x=getchar())!=EOF)&&isdigit(x)) number=number*10+x-'0'; if (x!=EOF) ungetc(x,stdin); 函数名 : ungetwc 所属库名: or 函数功能: 把一个字符放回到数据流中 使用方法: wint_t ungetwc( wint_t c, FILE *stream ); 范 例: 和ungetc函数类似 函数名 : va_arg 所属库名: and 共149页 第页 VC 函 数 详 解 函数功能: 当某个函数的参数数量不确定时,返回参数表中的当前参数,并且把参数指针指向下一个可选参数 使用方法: type va_arg( va_list arg_ptr, type ); 范 例: 这个例子中介绍了va_arg、va_end和va_start函数的ANSI版本的用法:    void main()   {  cout<<"2,4,6,8,10的平均值是:"; cout Average(2,4,6,8,10); } int Average( int First,… )  { va_list argpoint; int temp=First, sum=0,count=0; va_start(argpointer,First); while(temp!=-1) { 函数名 : va_end 所属库名: and 函数功能: 把参数指针复位为NULL 使用方法: void va_end( va_list arg_ptr ); 范 例: 请参看va_arg函数 函数名 : va_start 所属库名: and 函数功能: 把参数指针指向参数表中的第一个可选参数 使用方法: void va_start( va_list arg_ptr ); (UNIX version) void va_start( va_list arg_ptr, prev_param ); (ANSI version) 范 例: 请参看va_arg函数 函数名 : vfprintf 所属库名: and 函数功能: 使用一个参量表的指针写格式化的输出 使用方法: int vfprintf( FILE *stream, const char *format, va_list argptr ); 范 例: 和fprintf函数类似 函数名 : vfwprintf 所属库名: or , and 函数功能: 使用一个参量表的指针写格式化的输出,本函数只适用于宽字符编程 使用方法: int vfwprintf( FILE *stream, const wchar_t *format, va_list argptr ); 共135页 第页 VC 函 数 详 解 范 例: 和vfprintf函数类似 函数名 : vprintf 所属库名: and 函数功能: 使用一个参量表的指针写格式化的输出 使用方法: int vprintf( const char *format, va_list argptr ); 范 例: 和prinrf函数类似 函数名 : vsprintf 所属库名: and 函数功能: 使用一个参量表的指针写格式化的输出 使用方法: int vsprintf( char *buffer, const char *format, va_list argptr ); 范 例: 和sprintf函数类似 函数名 : vswprintf 所属库名: or , and 函数功能: 使用一个参量表的指针写格式化的输出,本函数只适用于宽字符编程 使用方法: int vswprintf( wchar_t *buffer, const wchar_t *format, va_list argptr ); 范 例: 和vsprintf函数类似 函数名 : vwprintf 所属库名: or , and 函数功能: 使用一个参量表的指针写格式化的输出,本函数只适用于宽字符编程 使用方法: int vwprintf( const wchar_t *format, va_list argptr ); 范 例: 和vprintf函数类似 共149页 第页 VC 函 数 详 解 函数名 : wcscat 所属库名: or 函数功能: 把一个字符串添加到另一个字符串的尾部,本函数只适用于宽字符编程 使用方法: wchar_t *wcscat( wchar_t *strDestination, const wchar_t *strSource ); 范 例: 和strcat函数类似 函数名 : wcschr 所属库名: or 函数功能: 在宽字符串string中搜索宽字符c,若成功则返回一个指向该字符第一次出现的位置,否则返回NULL 使用方法: wchar_t *wcschr( const wchar_t *string, wint_t c ); 范 例: 和strchr函数类似 函数名 : wcscmp 所属库名: or 函数功能: 比较宽字符串string1和宽字符串string2,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int wcscmp( const wchar_t *string1, const wchar_t *string2 ); 范 例: 和strcmp函数类似 函数名 : wcscoll 所属库名: , 函数功能: 根据当前的代码页信息和地域信息,按照大小写匹配,核对宽字符串string1和宽字符串string2,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int wcscoll( const wchar_t *string1, const wchar_t *string2 ); 范 例: 和strcoll函数类似 共135页 第页 VC 函 数 详 解 函数名 : wcscpy 所属库名: or 函数功能: 把一个字符串复制到另一个字符串中,本函数只适用于宽字符编程 使用方法: wchar_t *wcscpy( wchar_t *strDestination, const wchar_t *strSource ); 范 例: 和strcpy函数类似 函数名 : wcscspn 所属库名: or 函数功能: 返回宽字符串strCharSet所属宽字符在宽字符串string中第一次出现的位置 使用方法: size_t wcscspn( const wchar_t *string, const wchar_t *strCharSet ); 范 例: 和strcspn函数类似 函数名 : wcsftime 所属库名: or 函数功能: 格式化一个时间字符串 使用方法: size_t wcsftime( wchar_t *strDest, size_t maxsize, const wchar_t *format, const struct tm *timeptr ); 范 例: 和strftime函数类似 函数名 : wcslen 所属库名: or 函数功能: 返回某个宽字符串的长度 使用方法: size_t wcslen( const wchar_t *string ); 范 例: 和strlen函数类似 函数名 : wcsncat 所属库名: or 函数功能: 把字符串strSource中指定数量的字符添加到字符串strDest的尾部,本函数只适用于宽字符编程 共149页 第页 VC 函 数 详 解 使用方法: wchar_t *wcsncat( wchar_t *strDest, const wchar_t *strSource, size_t count ); 范 例: 和strncat函数类似 函数名 : wcsncmp 所属库名: or 函数功能: 把第一个宽字符串string1中指定数量的字符和第二个宽字符串string2进行比较,若两者相等则返回0,若前者大于后者则返回大于0的值,否则返回小于0的值 使用方法: int wcsncmp( const wchar_t *string1, const wchar_t *string2, size_t count ); 范 例: 和strncmp函数类似 函数名 : wcsncpy 所属库名: or 函数功能: 把指定数量的宽字符从src复制到dest 使用方法: wchar_t *wcsncpy( wchar_t *strDest, const wchar_t *strSource, size_t count ); 范 例: 和strncpy函数类似 函数名 : wcspbrk 所属库名: or 函数功能: 返回宽字符串strCharSet所属字符在宽字符串string中第一次出现的位置 使用方法: wchar_t *wcspbrk( const wchar_t *string, const wchar_t *strCharSet ); 范 例: 和strpbrk函数类似 函数名 : wcsrchr 所属库名: or 函数功能: 检测字符c在宽字符串string中最后出现的位置, 使用方法: char *wcsrchr( const wchar_t *string, int c ); 范 例: 和strrchr函数类似 共135页 第页 VC 函 数 详 解 函数名 : wcsspn 所属库名: or 函数功能: 返回宽字符串string中不属于宽字符串strCharSet的第一个字符的位置 使用方法: size_t wcsspn( const wchar_t *string, const wchar_t *strCharSet ); 范 例: 和strspn函数类似 函数名 : wcsstr 所属库名: or 函数功能: 在一个宽字符串string中搜索另一个宽字符串strCharSet,若成功则返回一个指向后者第一次出现的位置,否则返回NULL 使用方法: wchar_t *wcsstr( const wchar_t *string, const wchar_t *strCharSet ); 范 例: 和strstr函数类似 函数名 : wcstod 所属库名: or 函数功能: 把一个宽字符串转换为一个double型数据 使用方法: double wcstod( const wchar_t *nptr, wchar_t **endptr ); 范 例: 和strtod函数类似 函数名 : wcstok 所属库名: or 函数功能: 在宽字符串中搜索指定的记号 使用方法: wchar_t *wcstok( wchar_t *strToken, const wchar_t *strDelimit ); 范 例: 和strtok函数类似 函数名 : wcstol 所属库名: or 函数功能: 把一个字符串转换成long型整数 共149页 第页 VC 函 数 详 解 使用方法: long wcstol( const wchar_t *nptr, wchar_t **endptr, int base ); 范 例: 和strtol函数类似 函数名 : wcstombs 所属库名: 函数功能: 把一组宽字符转换为多字节字符 使用方法: size_t wcstombs( char *mbstr, const wchar_t *wcstr, size_t count ); 范 例: 这个例子中把宽字符串wstring转换成多字节字符串mstring:   char *mstring=char(*)malloc(MB_CUR_MAX); wchar_t *wstring=L"hello"; wcstombs(mstring,wstring,MB_CUR_MAX); cout< or 函数功能: 把一个字符串转换成无符号long型整数 使用方法: unsigned long wcstoul( const wchar_t *nptr, wchar_t **endptr, int base ); 范 例: 和strtoul函数类似 函数名 : wcsxfrm 所属库名: or 函数功能: 根据指定的地域设置,把字符串strSource中指定数量的宽字符转换为字符串strDest ,若成功则返回被转换字符的长度,否则返回-1 使用方法: size_t wcsxfrm( wchar_t *strDest, const wchar_t *strSource, size_t count ); 范 例: 和strxfrm函数类似 函数名 : wctomb 所属库名: 函数功能: 把一个宽字符转换为对应多字节字符 使用方法: int wctomb( char *mbchar, wchar_t wchar ); 范 例: 这个例子中把宽字符Wchar转换成多字节字符Mchar: int Count; char *Mchar=(char *)malloc(sizeof(char)); wchar_t Wchar=L'a';   Count=wctomb(Mchar,Wchar); cout< 共149页 第页 VC 函 数 详 解 函数功能: 返回一个宽字符代码集合到另一个集合的映象 使用方法: wctrans_t wctrans(const char *property ); 范 例: 请参看towctrans函数 函数名 : wctype 所属库名: 函数功能: 返回宽字符代码的分类规则 使用方法: wctype_t wctype( const char * property ); 范 例: 这个例子中的iswlower函数和iswctype函数是等价的:  iswlower(c)相当于iswctype(c,wctype("lower")) 函数名 : wprintf 所属库名: or 函数功能: 把格式化的数据输出到标准输出流 使用方法: int wprintf( const wchar_t *format [, argument]… ); 范 例: 和printf函数类似 所属库名: or 函数名 : wscanf 函数功能: 从标准输入流(stdin)读取格式化数据 使用方法: int wscanf( const wchar_t *format [,argument]… ); 范 例: 和scanf函数类似 共149页 第页

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享文档获得金币 ]
2 人已下载

下载文档

相关文档