3,线程安全性
在AIX上的程序如果使用了多线程,程序一定要在编译时加上-D_THREAD_SAFE或者-D_THREAD_SAFE_ERRNO,查看/usr/include/errno.h就不难发现其原因了。否则程序会报出很多奇奇怪怪的错误,搞得你头大。
另外,如果你使用了第三方库,你一定要检查一下,看它是否有分单线程或者多线程的版本,比如sybase数据库的ct-lib库,在AIX上就有分libct.so和libct_r.so,当然还你要搞清楚你安装的操作系统是多少位的,32bit或者64bit,同样有libct64.so和libct64_r.so。
4,Makefile文件
在AIX上自己可以安装一个GUN的make,这样你就不用太大改动你在Linux下的Makefile文件了,但还是有小许地方是要改动的,比如你有使用到.so文件,你不能用-l某某库的方式,你必须以全路径方式,与.o文件一起link起来,比如你要用到libsybdb.so,如果你用-lsybdb,-L$(SYBASE)/lib,编译时还是会报找不到该SO文件,你可以用$(SYBASE)/lib/libsybdb.so直接把全路径编译,正常。
以上一些,是我在实际中发现的一些问题,因为对AIX也不太熟悉,并不确定是否是因为我本身的配置或者其它别的原因导致的,如果哪位高手发现有更好的办法,望指点。另如还有其它的一些经验,也希望补充。谢谢!
其次,介绍几个比较好的工具,以网络邻居方式访问AIX上文件:samba for aix,同样也有linxu版本。另外,查看是否内存泄露:svmon -P PID -i N就每隔N秒打印一下进程PID的资源使用情况。