易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux Socket 学习(十)


Linux Socket 学习(十)
在套接口上使用标准I/O
在前面章节的例子代码中我们已经使用了read(2)或是write(2)系统调用在套接口上执行读取和写入操作。这个规则的一个例外就是recvfrom(2)和sendto(2)函数,这两个函数用来读写数据报。然而,使用read和writte函数调用却有一些程序上的缺点。
这一章我们将会讨论以下内容:
如何使用fdopen(3)将一个套接口与一个FILE流相关联
如何创建并读写FILE流
关闭与套接口相关联的流的问题
为我们的FILE流选择并创建合适的缓冲技术
中断系统调用的问题
掌握了这些内容将为我们提供解决我们网络程序的额外方法。
理解标准I/O的需要
Linux中的stdio(3)程序符合ANSI C3.159-1989标准。这个接口的标准化可以帮助程序将程序移植到多个平台。例如,当我们要将源代码从其他的UNIX系统移植到我们自己的Linux平台时,这个程序对于我们来说也许有用。
stdio包本身是与read和writte调用相冲突。然而,我们却使用标准的I/O调用,因为根据我们程序的需要,他们可以方便的每次为我们提供一行或是一个字符。例如,read调用,并不会为我们的程序返回一个文本行。相反,他们返回尽可能多的数,甚至是多行文本。
当写入套接口时,标准I/O例程可以允许我们的程序每次写入一个字符,而不会造成大的内容覆盖。另一方面,每次调用writte写入一个字符花费太大。标准I/O函数允许我们的程序使用合适的数据单元进行操作。
stdio同时我们的程序提供了数据缓冲功能,包括输入与输出。当使用缓冲功能,可以极大的改善我们程序的性能。不幸的是,缓冲会为某些格式的通信造成困难,所以并不是总是使用缓冲。
在这一章我们假设已经熟悉了stdio的基本功能。这通常是在C程序教程,同时也是C语言本身所教的内容。相应的,这一章我们将会专注于我们应密切关注的东西,而其他的一些细微的地方并不明显,因为他适用于套接口编程。
将一个套接口与一个流相关联
stdio流是由FILE控制块来进行管理的。例如,我们也许已经多次编写了如下所示的代码:
FILE *in;
in = fopen(pathname,"r");
if ( in == NULL ) {
    fprintf(stderr,"%s: opening %s for read.\n",strerror(errno),pathname);
    exit(1);
}
在这个例子中,变量pathname所指定的文件将会打开来读。如果open调用成功,变量in将会接收一个指向为我们管理流I/O的FILE结构。否则,变量in接收一个NULL指针,而我们的程序也必须处理或是报告


相关文档:

linux_学习笔记_目录结构

linux目录架构
/   根目录
/bin    常用的命令 binary file 的目錄
/boot   存放系统启动时必须读取的档案,包括核心 (kernel) 在内
     /boot/grub/menu.lst   GRUB设置
     /boot/vmlinuz   内核
   ......

Linux用户和组

一、理解Linux的单用户多任务,多用户多任务概念;
Linux 是一个多用户、多任务的操作系统;我们应该了解单用户多任务和多用户多任务的概念;
1、Linux 的单用户多任务;
单用户多任务;比如我们以beinan 登录系统,进入系统后,我要打开gedit 来写文档,但在写文档的过程中,我感觉少点音乐,所以又打开xmms
来点音乐 ......

Linux 设置环境变量小结

Linux 设置环境变量小结
转载自:http://www.roboticfan.com/blog/user_2005/104/archives/2009/2009617176.shtml
1、总结背景
在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐 ......

学习LINUX步骤(转)

1、Linux 基础
安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统 能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践 设置Linux环境变量 定制Linux的服务 Shell 编程基础使用vi编辑文件 使用Emacs编辑文件 使用其他编 ......

Linux目录结构,写给Windows用户的Linux目录结构的介绍

与Windows将硬盘看做“C盘”、“D盘”几个独立的分区不同,Linux将整个文件系统看做一棵树,这棵树的树根叫做根文件系统,用/表示。各个分区通过“挂载”(mount)以文件夹的形式访问。
 
 在/中的文件夹很多,本文介绍常见文件夹的意义。Linux的目录结构确实比较复杂,但设置合 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号