注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Linux >> Unix >> Linux正文

SCO UNIX到Linux操作系统的程序移植问题

文章来源:中国IT实验室收集整理 作者:佚名 更新时间:2007-9-14 【 】 【加入收藏

  要求把一个原先运行在SCO UNIX操作系统的柜面系统移植到Red Hat Linux AS平台上。现在好像有一个趋势,金融行业的的原先运行在SCO下的系统都准备迁移到LINUX下。

  下面简要整理一下,迁移过程中的一些心得体会。

  一、SCO 的cc 与LINUX 的gcc的一些差别

  总的来说,linux的gcc编译器相对sco下的cc要严格许多。通过这次移植发现SCO的cc对程序的要求实在不怎么严谨。举个例子,比如strcpy()函数应该是2个函数,如果你给他3个参数,编译也能通过。还有,如果一个函数的参数应该是传值,你给它传一个地址,cc也不会报错。

  SCO的cc与linux的gcc在有关空指针的处理上的差别是最明显的。比如,strcpy(),strncpy(),strcmp(),strncmp(),fclose()。在SCO上,如果参数有一个是空指针,程序不会core,但在LINUX下,这些函数只要有一个是空指针,程序运行过程中就会core。在移植过程中,我们发现只要程序运行过程中出现core,十有八九是因为空指针的问题。

  因此,移植的第一步,我么就对上述常见的字符串操作函数,做了一层封装,然后用封装过的函数来全局替换原来的函数。

  二、gdb的使用

  由于以前没在liunx下写过程序,对gdb调试工具也没有使用过。这次移植还学会了gdb的一些基本调试步骤。

  gdb 可执行程序

  b 设置断点

  r 运行程序

  c 端点后重新运行程序

  n 执行下一条语句

  s 进入到函数体内调试(相对于n)

  attach PID 调试正在运行的程序

  三、关于core文件

  在SCO下,一般程序core时,都会在可执行目录下生成一个core文件,我们可以使用dbx 来查看程序的什么地方出现了core。

  移植到LINUX下,一开始,程序core时,怎么都没有生成core文件。后来,才发现,需要人为设定core文件所允许的最大值。如果没有设定,默认是0,也就不会生成core文件。

  设定方法如下:

  执行 ulimit -c 102400,可以把这个命令放在用户的登录shell里面,这样不用每次登录时重新设置了。

  使用“gdb 可执行程序名 core文件名”可以查看大致在什么地方程序出现core。

  • 上一篇Linux:

  • 下一篇Linux:
  • 最 新 热 门
     VMware下Linux与真实主机共享上网
     Linux系统安全隐患及加强安全管理方法
     各类Unix和Linux密码丢失解决方法
     配置Linux操作系统的环境变量
     在Linux系统下刷新主板BIOS的好方法
     删除文件提示:Operation not permitted
     Linux系统下硬盘挂载详细说明
     Linux文本模式下如何发送带附件的Email
     在Linux自动生成一个保险密码的方法
     Linux商业电影动画制作软件列表
    最 新 推 荐
     在Fedora Core系统中共享Windows打印机
     不同的类UNIX操作系统密码破解方法介绍
     UNIX的分支 服务器上的FreeBSD操作系统
     UNIX操作系统的加锁解锁:等待事件及唤醒
     Solaris TELNET ftp时间超长的解决方法
     SCO UNIX到Linux操作系统的程序移植问题
     使用Unix命令行模式高效地进行文本编辑
     Solaris第一次亲密接触
     Unix学习方法-高手之路
     FreeBSD下3D功能的实现
    相 关 文 章

    如何解决Scim和Skype之间的冲突问题
    Linux下NFS文件mount超时的问题解答
    Linux系统下ifconfig命令使用及结果分析
    Fedora 8 Linux下安装配置audacious过程
    动态链接库管理命令Ldconfig使用说明
    Ubuntu Linux Drcom客户端上网
    Redhat Fedora Core 6 Linux安装流程
    autoconf 和automake生成Makefile文件
    lastcomm:显示用户在主机执行哪些命令
    解决Linux系统mount文件夹乱码问题

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用