stackava.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 35 行
C
35 行
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <fcntl.h>
#include <io.h>
long char_count( FILE *fp )
{
char *buffer;
size_t bufsiz;
long count;
/* allocate half of stack for temp buffer */
bufsiz = stackavail() >> 1;
buffer = (char *) alloca( bufsiz );
setvbuf( fp, buffer, _IOFBF, bufsiz );
count = 0L;
while( fgetc( fp ) != EOF ) ++count;
fclose( fp );
return( count );
}
void main()
{
FILE *fp;
fp = fopen( "file", "rb" );
if( fp != NULL ) {
setmode( fileno( fp ), O_BINARY );
printf( "File contains %lu characters\n",
char_count( fp ) );
fclose( fp );
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?