浅谈Unix和Linux下的int
这也算和平同学的点题作文了,呵呵。
他对于Linux下很多时候,api函数大量使用int作为常用类型感到不解,问我,我呢,就试着回答一下哈。
原帖在这里:http://student.csdn.net/space.php?uid=121080&do=thread&id=9168
问题如下:
根据<c++ primer>建议,表示像“容量”这样的变量时,因为不可能出现负数,所以建议用size_t类型。但是linux下的程序,好像比较喜欢使用int。
为什么不使用size_t(或者unsigned int)而使用int?表示范围不是少了一半吗?
我的回答:
嗯,这个问题算是比较偏门了,不过,我做过Windows开发,也做过Linux开发,两个平台都用过,没什么道理哈,仅仅谈点自己的感觉,嗯,不一定准确,大家有高见,还可以补充。
我觉得这个问题首先是一个文化问题。什么叫文化,就是做这类事情的人们的一个通常的共识,就是大家都习惯这么做事。我很早,嗯,07年开始转向Linux开发的时候,就发现这点不同。
Windows呢,是微软公司开发的,大公司,强调严谨的开发风格,大家可以从它推崇匈牙利命名法就看的出来。它对于变量命名,类型命名是有严格规定的,要求尽量准确,不给后来者留歧义。比如,很多Struct*,它会使用typedef显式定名为一种新类型PStruct来管理,这样,大家从字面上就可以一眼看出来,而不用到用的时候,跑去数星星。数星星很容易数错的。我就干过坏事,嘿嘿。
这个道理也很简单,微软是开发OS的,说白了,它的主要产品功能,除了Windows的操作功能,还需要提供大量的api给广大程序员用,没办法啊,如果没人给他的操作系统开发应用程序,他的OS卖不动的。
这就要求微软不仅仅关注终端用户的体验,也特别关注程序员用户的体验,而明示的api,显然是一种很好的用户体验,程序员不容易犯错误,被api的提供者约束着做正确的事情,程序员bug少,成功率就高,进而开发成本就低,于是,形成良性循环。
同时,这也为微软的客服部门减少好多投诉哦,大家换位思考一下,如果微软的api含糊不清,大家是不是要发飙?呵呵。
这里面体现出来一个很重要的思想,微软是把广大应用程序员,也作为什么都不懂的终端用户在看待,试图从api上构建最大的开发友好度,因此,它对于命名法很严格,api定名表意很清晰,同时,对于各种变量、类型,不厌其烦,多次定义,为了是让各个行业的程序员, 用起来都尽量贴合自己的行业习惯。
这是有道理的,比如我现在在电力系统,我们定义变量类型,喜欢用Int16、Int32、I
相关文档:
http://www.linuxjournal.com/
Linux Kernel Newbies
一方适合内核开发初级黑客的乐土——该网站几乎能够满足所有磨刀霍霍向内核的新手的需求。
http://kernelnewbies.org/
http://vger.kernel.org/
了解如何使用linux内核列表
http://www.tux.org/lkml/
Linux
新闻周刊,它有一个专区报道有关内核的重要 ......
linux网络连接配置通过命令ifconfig来完成,也就是interface configuration。
!!友情提醒:下面用的命令有些需要root权限
查看网络连接
ifconfig
eth0 Link encap:以太网 硬件地址 00:e0:61:02:af:ba
&n ......
2007 年 4 月 17 日
Linux® 系统调用 ——
我们每天都在使用它们。不过您清楚系统调用是如何在用户空间和内核之间执行的吗?本文将探究 Linux
系统调用接口(SCI),学习如何添加新的系统调用(以及实现这种功能的其他方法),并介绍与 SCI 有关的一些工具。
系统调用
就是用户空间 ......
Written by shine
on 2009, April 23, 12:29 PM. Linux
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前 Webmin支持绝大多数的Unix系统,这些系统除了各种版本的linux
以为还包括:AIX、HPUX、Solaris、Unixware、Irix 和FreeBSD等。
Webmin ......
在现行的linux发布版本中,软件包管理工具使用最多的是rpm和dpkg,但是这两者都不能解决软件之间的依赖关系,所以又有了yum和apt,yum其实是对rpm的封装,而apt是对dkpg的封装,两者都在封装的同时,很好的解决了软件依赖问题,使用起来非常方便。下面是一些软件管理常用的命令:
更新软件列表:
......