分类: LINUX
2009-09-21 19:10:11
36 在makefile中写shell命令时,Compound commands(复合shell命令)必须写在一行上。比如:
LIST = one two three
all:
for i in $(LIST); do \
echo $$i; \
done
为了把复合语句写在多行上,必须用\连接多行为一行。
37 在C语言的enum中可以使用已经定义的enum。比如,像下面这样:
enum {
/* listening port */
LISTENING_DECCOMMPORT = 0,
LISTENING_DECDATAPORT,
LISTENING_PLYCOMMPORT,
LISTENING_PLYDATAPORT,
LISTENING_GUICOMMPORT,
LISTENING_GUIDATAPORT,
/* connected port */
CONNECTED_DECDATAPORT,
CONNECTED_PLYCOMMPORT,
CONNECTED_PLYDATAPORT,
CONNECTED_GUICOMMPORT,
CONNECTED_GUIDATAPORT,
};
enum {
LISTENING_PORT_NUMBER = LISTENING_GUIDATAPORT - LISTENING_DECCOMMPORT + 1,
CONNECTED_PORT_NUMBER = CONNECTED_GUIDATAPORT - LISTENING_PORT_NUMBER + 1,
TOTAL_PORT_NUMBER = LISTENING_PORT_NUMBER + CONNECTED_PORT_NUMBER,
};
但是,如果一个enum的使用在其定义之前,则会出现错误。
38 当向htons()传入大于等于65536的数时,将会发生什么?htons()是将一个unsigned short类型从主机字节序转换为网络字节序的函数(也可能实现为宏定义),当传入的数大于unsigned short类型所能表示的范围时,htons()将会把传入的数的类型转换为unsigned short类型,这导致的结果是实际得到的数被回绕到了unsigned short类型的起始端。若传入的数值为n,则类型转换的结果相当于n % 65536。因此,当向htons()传入65536时,htons()实际上认为传入的是0;如果传入的是65537,则htons()实际上认为传入 的是1;以此类推。在网络编程时,如果不小心在大于65535的端口上打开一个监听套接口,程序不会报错,但实际上套接口并没有在指定的端口上监听。这样 的错误比较隐蔽,应当引起注意。
39 在$HOME目录下,有一个名为.ccache的文件夹,这个文件夹是ccache保存缓存的头文件都内容的地方,可能会占据较大磁盘空间,当磁盘空间紧 张时,可以检查$HOME/.accache/文件夹,如果发现占据空间过大,可以用ccache -C清除此目录下的数据。按man手册,ccache is a fast compiler cache。
40 Linux下的几种绘图软件:dia,gnuplot,pic。pic用于从图片描述生成TeX或者groff能够理解的命令。gnuplot是命令行下的绘图工具,可以输出符合TeX要求的命令。dia是桌面绘图工具。
41 对于source rpm的安装,常简单的方法是首先用rpmbuild —rebuild yourfile.src.rpm构建出二进制RPM包,二进制RPM包通常位于/usr/src/redhat/RPMS/i386/目录下(在我的 Fedora Core上是这样的:从source rpm构建的中间文件都存放在/usr/src/redhat/目录下)。构建好二进制RPM包后,进入/usr/src/redhat/RPMS /i386/目录,输入rpm -ivh yourfile.rpm命令安装构建出来的RPM包。这里举一个例子——安装nasm-2.05.99.91-1.src.rpm包:
首先用rpmbuild构建二进制RPM包:
rpmbuild —rebuild nasm-2.05.99.91-1.src.rpm
构建完成之后,在/usr/src/redhat/RPMS/i386/目录下将会得到一个nasm-2.05.99.91-1.i386.rpm,用rpm命令安装这个构建出来的二进制RPM包:
rpm -ivh nasm-2.05.99.91-1.i386.rpm
这样,就把nasm-2.05.99.91安装到系统中了。
42 在Linux/UNIX下可以用rdesktop登录Windows的3389服务(Remote TeminalService,远程终端服务)。
43 如果需要将Linux上的文件备份到Windows上,可以考虑使用rsync:在Linux上启动rsyncd,在Windows用rsync备份。Windows上的rsync工具是cwRsync。
44 用httpfs()可以把任何通过http能够访问的文件挂载到Linux的文件系统上,当 然挂载的文件是只读的。用unpackfs()则可以挂载诸如gzip,bzip2这样 的压缩文件到文件系统的挂载点上。