依睛(IT blog) 我回来了,PHP<-->C/C++ LINUX

笨鸟

统计

积分与排名

友情连接

最新评论

正常的I/O

正常的I/O缓冲区大小(一般是512或1024)
getc(fp)  从流fp中返回一个字符
getchar()  getc(stdin)
putc(c,fp)  向流fp输出一个字符c
putchar(c)  putc(c,stdout)
feof(fp)  当文件结束时得到一个不为0的数
ferror(fp)  当文件出错时得到一个不为0的数
fileno(fp)  流fp的文件描述符


表 5 常用的标准 I/O 函数
名称  含义 
fp=fopen(s,mode)  打开文件,mode为r、w、a时分别表示读、写、添加
c=getc(fp)  得到一个字符。即getc(stdin)
putc(c,fp)  放入一个字符。即putc(c,stdout)
ungetc(c,fp)  将字符放回输入文件fp,每次至多放回一个字符
scanf(format,a1,...)  把字符从stdin读入到a1,...。ai必须是指针
fscanf(fp,...)  从文件fp中读入
sscanf(s,...)  从字符串s中读入
printf(format,a1,...)  对a1,...进行格式化,输出到stdout
fprintf(fp,...)  输出到文件fp
sprintf(s,...)  输出到字符串s
fgets(s,n,fp)  从文件fp中至多读n个字符到s中
fputs(s,fp)  在文件fp中输出字符串s
fflush(fp)  将缓冲区中的数据写到fp中
fclose(fp)  关闭文件fp
fp=popen(s,mode)  为命令s打开一个管道
pclose(fp)  关闭管道fp
system(s)  运行命令s,等待其结束

2.2.2  IEEE POSIX
POSIX 是一系列由 IEEE(Institute of Electrical and Electronics Engineers,电气与电子一程师协会) 制定的标准。POSIX 指的是可移植的操作系统接口(Portable Operating System Interface)。它原来指的 只是 IEEE 标准 1003.1-1988(操作系统接口),后来则扩展成包括很多标记为 1003.1 的标准及标准草案。 虽然 1003.1 标准是以 UNIX 操作系统为基础的,但是它并不限于 UNIX 和类似于 UNIX 的系统。 IEEE 1003.1 工作组继续对标准做出修改,在后续的版本中逐渐加入多线程编程接口(称为 pthreads,指的就是 POSIX 线程)、 实时接口以及事件跟踪方面的扩展。
表6 POSIX 标准定义的必需头文件
头文件  说明  头文件  说明 
< dirent.h >  目录项  < fcntl.h >  文件控制 
< fnamtch.h >  文件名匹配类型  < glob.h >  路径名模式匹配类型 
< grp.h >  组文件  < netdb.h >  网络数据库操作 
...  ...  ...  ... 

这些库中包含了系统编程用于的各种功能,诸如文件控制、套接字(socket)、消息队列、信号量、共享存储、线程控制等等。
3  文件 I/O
3.1  文件描述符
对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。当打开一个 现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读或写一个文件时,使用  open 或 creat 返回的文件描述符标识该文件,将其作为参数传送给 read 或 write。 依照惯例,UNIX 系统 shell 使用文件描述符 0 与进程标准输入相关联,文件描述符 1 与标准输出相关联, 文件描述符 2 与标准出错输出相关联。 在依从 POSIX 的应用程序中,幻数 0、1、2 应当替换成符号常量
 STDIN_FILENO、 STDOUT_FILENO、  STDERR_FILENO。这些常量都定义在头文件  < unistd.h >  中。 对于每个文件描述符,通常都定义有 open、creat、close、read 这样的一些系统调用。 对于普通文件的描述符而言,这些接口的功能与 C 库的 fxxxx 系列接口功能相当。 差别在于这里使用的是文件描述符标识每个文件,而不是使用 FILE 指针。 当然,像 open 并不仅仅是针对普通文件的,对于其它的设备文件,在应用层也是可以使用相同的接口进行操作的, 只是在 linux 内核当中,会根据文件的不同类型,选择不同的驱动程序实现用户所需的功能。
4  进程环境
4.1  main 函数
C 程序总是从 main 函数开始执行。main 函数的原型是
    int main(int argc, char *argv[]);
其中,argc 是命令行参数的数目,argv 是指向参数的各个指针所构成的数组。 当内核执行 C 程序时(
文章出处:http://www.diybl.com/course/6_system/linux/Linuxjs/20071019/78254_3.html

posted on 2009-01-17 17:38 向左向右走 阅读(125) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。