Chinaunix首页 | 论坛 | 博客
  • 博客访问: 186050
  • 博文数量: 9
  • 博客积分: 1722
  • 博客等级: 上尉
  • 技术积分: 225
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-09 11:13
文章分类
文章存档

2012年(1)

2011年(5)

2010年(3)

分类: 系统运维

2012-09-04 08:29:17

   最近在AIX上用xlc去编译一些程序,因为是64位,所以一般用long,包括日期,但一些数据是从数据库取出来的串,长度肯定32位是不够了,于是用atol将其转换,但是问题来了,得到的负值,也就是存储类型不够用了,但我明明是用的long啊,而且确定编出来的是64位,但看现象,明显就是得出的一个int型值!
 
后来man了一下,原来在AIX上这个函数要对应的头文件#include 没有引入,引入后OK!
 
还有一个问题就是做ascii字符向十六进制字符转换过程中,遇到了莫名的问题,总是出错!索性加入一些头文件
#include
#include
/*以下两个为新加*/
#include
#include
解决!
 
另,说明一下编译64位的参数吧,如果不在环境变量里做设置的话,cc -q64 或 -q32
否则可在环境变量设置

关于OBJECT_MODE环境变量:

The AIX operating system provides support for the OBJECT_MODE environment variable to enable the user to obtain a 64-bit development environment. AIX tools use the setting of OBJECT_MODE to determine the type of object to be used or created. The OBJECT_MODE environment variable has three recognized settings:

OBJECT_MODE=32 Works with 32-bit objects
OBJECT_MODE=64 Works with 64-bit objects
OBJECT_MODE=32_64 Works with either 32-bit or 64-bit objects
阅读(7844) | 评论(0) | 转发(0) |
0

上一篇:postfix 防止成为垃圾邮件转发器

下一篇:没有了

给主人留下些什么吧!~~