c-VC6 默认缓冲区空间问题(与_M_MPPC)

问题描述

VC6 默认缓冲区空间问题(与_M_MPPC)

在网络上看到资料:“如果我们没有自己设置缓冲区的话,系统会默认为标准输入输出设置一个缓冲区,这个缓冲区的大小通常是512个字节的大小。“。
为了知道VC编译器默认对流式文件分配的缓冲区空间大小,我用以下代码:
//测试代码
#include
#include
#include
#include

void main(void)

{
printf("BUFSIZ=%dn",BUFSIZ); //查看默认缓冲区大小

FILE *fp;

if((fp=fopen("dat.txt","w"))==NULL)
{
    puts("can not open file");
    exit(0);
}

int i;
for(i=0;i<4097;i++) fputc('*',fp);

system("pause");    //程序暂停,如果此时缓冲区溢出那dat.txt将已经有溢出部分的内容
fclose(fp);

}

/*

测试结果:
1、BUFSIZ的返回值是512。
2、当i=4097时,前4096个字符溢出,说明在流式文件缓冲区溢出限制是4096个字节。
*/

得到这个结果后,我看了一下VC6的stdio.h中对BUFSIZ的声明:
/* Buffered I/O macros */

#if defined(_M_MPPC)
#define BUFSIZ 4096
#else /* defined (_M_MPPC) /
#define BUFSIZ 512
#endif /
defined (_M_MPPC) */

这里我知道对于BUFSIZ空间的分配取决于是否有声明_M_MPPC,但关于这个_M_MPPC,我搜索到一篇资料,里面说明:
”_M_MPPC
Defined for Power Macintosh platforms. Default is 601 (/QP601). See Table 1.4 for more details.
“,但我仍不清楚这个是关于什么声明。

解决方案

Power Macintosh 是上世纪九十年代的一款苹果台式机。你用VC是不会支持这种机型的。

时间: 2024-10-24 04:24:43

c-VC6 默认缓冲区空间问题(与_M_MPPC)的相关文章

Oracle备份数据导入到其他的表空间(只设置默认表空间无效)

  我们在导入一个Oracle备份的数据文件(*.dmp)到另外一个数据库的用户下时,如果需要更换表空间,可以采用下几个办法. 假设导出用户名:EXP_USER 表空间为:EXP_TSPACE 导入用户名:IMP_USER 表空间为:IMP_TSPACE 1.设置导入用户的默认表空间以及权限. a)建表语句如下: create user IMP_USER Sql代码 identified by "密码" default tablespace IMP_TSPACE temporary t

[SocketException (0x2747): 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。 58.64.137.80:81]

问题描述 [SocketException(0x2747):由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作.58.64.137.80:81]System.Net.Sockets.Socket.DoConnect(EndPointendPointSnapshot,SocketAddresssocketAddress)+239System.Net.Sockets.Socket.InternalConnect(EndPointremoteEP)+35System.Net.ServicePoi

我用SOCKET接收文件,为什么会出现着错误:由于系统缓冲区空间不足或列队已满,不能执行套接字上的操作

问题描述 我用SOCKET接收文件,为什么会出现着错误:由于系统缓冲区空间不足或列队已满,不能执行套接字上的操作程序下,发送方:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Net.Sockets;usingSystem

linux oracle11gr2新建了一个用户,默认表空间users,创建表过后,无法插入数据

问题描述 linux oracle11gr2新建了一个用户,默认表空间users,创建表过后,无法插入数据 linux oracle11gr2新建了一个用户,默认表空间users,创建表过后,无法插入数据,提示:no privileges on tablespace users 新建表空间,并修改这个用户:tanke1的默认表空间后,然后再新建新表,就可以正常插入数据了 解决方案 gant privileges to newuser 解决方案二: gant privileges to newus

Ajax.Net的onLoading及aspx页面的默认名字空间及ajaxpro的google组怎么没有一个chinese?

ajax|google|loading|名字空间|页面 这是ajax.net作者做的onLoading demo.下载他的代码来看,有几点疑问:1,如果一个aspx页面没有后置代码cs类文件,或者在vs2005中没有给他手动加上名字空间,那么aspx的默认的名字空间是什么呢?难道是ASP??我想大家可能都没有注意到这个问题吧.请教吴旗娃师傅,他立即Response.Write(this.GetType().ToString())告诉我了结果,千真万确是ASP:2,如果一个类中包含了Ajax.Ne

默认名字空间

名字空间   <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />           如果为一个元素定义一个默认的名字空间,我们就不用在所有的子元素中使用前缀了.它的语法是这样的:       < element xmlns="namespace">       这个XML 文档在一个表格中携带了信息:       < table xm

求助大神!如何解决由于系统缓冲区空间不足或列队已满,不能执行套接字上的操作

问题描述 用C#写的一个连接多个服务端的软件,用任务管理器查看,内存不会上涨,句柄数也稳定,但是会出现标题上的问题,求大神们解答啊!谢谢! 解决方案 解决方案二:你连接多个服务端,好歹每个服务端对应一个TCPClint对象吧,发送接收的数组最好也分开,各用各的解决方案三:引用1楼Z65443344的回复: 你连接多个服务端,好歹每个服务端对应一个TCPClint对象吧,发送接收的数组最好也分开,各用各的 因为是同时连接的,我就是分开使用的解决方案四:怎么就没人来回答啊解决方案五:每当可读时,就要

WCF 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作 急急急。。。

问题描述 求教下这是什么问题导致的? 解决方案 解决方案二:没有神的回复?

ASPX文件中默认导入的名称空间

ASPX默认导入的名称空间可以直接引用了,使用其它的名称空间就的自行导入了. 默认名称空间  System  System.Collections  System.Collections.Specialized  System.Configuration  System.Text  System.Text.RegularExpressions  System.Web  System.Web.Caching  System.Web.Security  System.Web.Se