易截截图软件、单文件、免安装、纯绿色、仅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设备模型之input子系统详解

一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......

linux_学习笔记_如何找到和安装软件

1.使用shell的which命令,
如:查找GUN的C编译器安装路径
$ which gcc
/usr/bin/gcc
2.如果which没有找到要找的文件,那就试试whereis,该命令搜索更大范围的系统目录,和shell搜索路径无关。
有些系统which命令无法显示用户没执行的权限文件:
如:which ipppd
$ which ipppd
/usr/bin/which:no ipppd in (/bin:/ ......

linux shell 基本命令

1.不提示删除目录  rm -rf ${dir}
2.rpm 查看并卸载软件
  rpm -qa | grep ${appname}
  rpm -e ${rpmname}
3.数学计算之bc
  echo "3 + 4 - 5 * 5 - 7 " | bc
 echo "3 + 4 - 5 * 5 - 7 " | bc | read myresult
4.查看进程
  ps -ef | grep ${tname}
exp: ......

Linux 设置环境变量小结

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

在Linux上安装Redmine与apache整合进行项目管理


安装
SVN
这个比较简单,去
这里下载源码
http://subversion.tigris.org/
 
自己编译下装好就是了。
对于
SVN
的配置,建议查看如下连接,说的很详细,我也不在多说哈
~
http://www.ibm.com/developerworks/cn/java/j-lo-apache-subversion/#N10250
不过,有一点,上边说的进行目录访问控制
,这个比较 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号