读《C和指针》笔记摘要【6】
2010-04-09
第十五章 输入/输出函数
1、错误报告
perror函数 void perror( char const *message);
2、终止执行
void exit( int status ); 原型定义于stdlib.h
其中status参数返回给操作系统,用于提示程序是否正常完成,这个值和main函数返回的整型状态值相同,预定义符号EXIT_SUCESS和EXIT_FAILURE分别提示程序的终止是成功还是失败;
3、对C语言而言,所有的I/O操作知识简单地从程序移进或移出字节的事情,毫不惊奇的是,这种字节流便称为流,程序只关心创建正确的输出字节数据,以及正确的解释从输入读取的字节数据,特定I/O设备的细节对程序员是隐藏的;
4、绝大多数是完全缓冲的,这就意味着“读取”和“写入”实际上时从一块称为缓冲区德内存区域来回复制数据;
5、在进行程序调试时,在每个调试的printf函数之后立即调用fflush函数,迫使缓冲区的数据立即写入,不管它是否已满;
例如:printf( "something or other" );
fflush( stdout );
6、文本流
流分为文本流和二进制流两种,文本流的有些特性可能因系统不同而不同;
7、标准C程序运行时至少提供三种流——标准输入,标准输出,标准出错,即:stdin, stdout, stderr;他们都是只想一个FILE结构的指针;
8、标准I/O常量
EOF所选择的实际值比一个字符要多几位,这是为了避免二进制值被错误地解释为EOF;
9、打开流
r, w, 和 a 开头,分别表示打开的流用于读取,写入还是添加;如果以读方式打开,则文件必须存在,而其余的方式文件可存在,可不存在,不存在将创建;
10、如果在mode中添加“a+”这种方式的话,表示该文件打开用于更新,但当你已经从该文件读入了一些数据,如果你要开始向他写入数据时,你必须先调用其中一个文件定位函数(fseek, fsetpos, rewind),在你向文件写入数据后,你又想读的话,那么又要调用fflush或文件定位函数之一;
11、freopen函数用于打开(或重新打开)一个特定的文件流
FILE * freopen( char const *filename, char const *mode, FILE *stream );
12、关闭流
fclose函数,对于输入流,fclose函数在文件关闭之前刷新缓冲区,如果它执行成功,fclose返回零值,否则返回EOF;
13、字符I/O
① int fgetc( FILE *stream );
② int getc( FILE *stream );
③ int getchar( );
这些都用于读取字符,但他们都返回一个
相关文档:
GCC 编译c程序的方法及过程解析
Justin.zp.Yang 2010.04.10
目前 Linux 下最常用的 C 语言编译器是 GCC ( GNU Compiler Collection ),它是 GNU 项目中符合 ANSI C 标准的编译系统,能够编译用 C 、 C++ 和 Object C 等语言编写的程序。 GCC 不仅功能非常强大,结构 ......
1、选择合适的算法和数据结构
选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。
在许多 ......
//来源不详
1. 绝对宏:
在程序中,用“#include<absacc.h>”即可使用其中定义的宏来访问绝对地址,包括CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD
具体使用可看一看absacc.h便知,例如:
rval=CBYTE[0x0002];指向程序存贮器的0002h地址
rval=XWORD[0x0002];指向外RAM的0002h地址
2 ......
jjhou.csdn.net里面有
--------------------------------------------------------------------------------
在 console mode 中使用 C/C++ 编译器
侯捷 1999.04.08
......
VC2005中C运行时库选择不当导致的链接问题及解决方案
在Microsoft Visual C++ 2005中,如果一个EXE主工程应用程序要使用一个或几个静态LIB库,那么链接时经常会遇到符号重复定义的错误,如果排除库不当又会遇到找不到某些符号的问题,如果强制使用 /force选项链接过去又可能发生一些意想不到的运行时问题。
  ......