一、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。

全部

sco unix和linux区别,SCOUNIX到Linux操作系统的程序移植问题有哪些呢?相关推荐

  1. solaris与linux区别,solaris与linux命令的区别

    最近使用axis2做webservice,在solaris上使用axis2生成客户端,当执行命令 export JAVA_HOME=/usr/j2se 设置环境变量时,报如下的错误: JAVA_HOM ...

  2. linux和unix区别_Unix vs Linux – Unix和Linux之间的区别

    linux和unix区别 Here you will learn about difference between unix and linux i.e. unix vs linux. 在这里,您将了 ...

  3. 宏内核与微内核、Linux内核与Unix内核的区别

    宏内核:简单来说,就是把很多东西都集成进内核,例如linux内核,除了最基本的进程.线程管理.内存管理外,文件系统,驱动,网络协议等等都在内核里面.优点是效率高.缺点是稳定性差,开发过程中的bug经常 ...

  4. Mac终端指令总结「Unix/Linux区别和联系、终端指令原理、Mac目录结构」

    一.认识UNIX和Linux 1.了解Unix和Linux的关系 下图Unix族谱 3.UNIX/Linux系统结构 UNIX/Linux 系统可以粗糙地抽象为 3 个层次(所谓粗糙,就是不够细致.精 ...

  5. 服务器运维用macos,MacOS和Linux区别_网站服务器运行维护,linux,macos

    MacOS catalina升级后Vmware黑屏的问题解决_网站服务器运行维护 macOS Catalina是苹果macOS全新版本.本文就来为大家介绍一下MacOS catalina升级后Vmwa ...

  6. RTOS与linux区别

    一句话解释: linux是分时系统,不过可以通过配置内核改成实时. 嵌入式Linux 系统是在原来Linux的发行版本之上进行了优化和改进的,用于嵌入式的移动终端等设备的嵌入式Linux系统现在基本上 ...

  7. 为什么在Unix下编程,而不在Linux下编程

    现在Linux是网络上相对火爆的词语,仅在Google中搜索关键词"Linux"就有4亿6千万的页面数:求职时如果你只会个Windows根本就不好意思与人打招呼,会个Unix怕别人 ...

  8. Linux和UNIX“新手”们必备的与Linux系统编程相关的基本概念

    1 操作系统的核心--内核 术语"操作系统"通常包含两种不同含义. 1.指完整的软件包,这包括用来管理计算机资源的核心层软件,以及附带的所有标准软件工具,诸如命令行解释器.图形用户 ...

  9. 初识Linux操作系统,Linux的特点与其他操作系统的区别,及Linux版本划分

    操作系统 操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石.操作系统需要处理如管理与配置内存.决定系统资源供需的优先次序.控制输入设备与输出设备.操作网络与管理文件系统等 ...

最新文章

  1. centos下pg_dump的服务器版本不匹配问题
  2. 西安交大计算机考研分数线2020院线,西安交通大学2020研究生复试分数线预计4月中旬左右公布...
  3. 在 vue 组件中查看 vuex 定义
  4. [系统底层] x86和x64下ssdt的差异
  5. python解码和编码的区别_python基础小知识,is和==的区别,编码和解码
  6. mysql pdo 获取最后一条sql_一条sql语句的执行过程-mysql
  7. python,opencv利用自适应阈值分割法实现微滴图像分割并计数
  8. 电商帝国阿里巴巴起跑中国量子产业
  9. 随机产生大写字母c语言,C语言程序设计 (英文打字练习)
  10. CHM 格式打开不显示网页
  11. 三维建模技术是如何发展的
  12. 阿里巴巴大数据竞赛(2014年3月10日到11月)
  13. 学it需要学历吗_低学历者是否适合学IT?IT行业对学历要求高吗
  14. python文件操作实现全文或单行替换
  15. 软件使用小技巧-Linux疑难杂症
  16. RDP 协议组件 X.224 在协议流中发现一个错误并且中断了客户端连
  17. 智能穿戴新方向华米科技血压手表相当于A类血压计申请标准
  18. ES MQ canal同步mysql
  19. 以太坊源码分析(10)CMD深入分析
  20. 科技创梦 乐赢未来!第十九届ChinaJoy如期开幕

热门文章

  1. Android 生成二维码
  2. 基于MODIS影像的TVDI指数干旱监测
  3. [YOLO专题-11]:YOLO V5 - ultralytics/train基于自定义图片数据集重新训练网络, 完成自己的目标检测
  4. 什么是 “use strict”; ? 使用它的好处和坏处分别是什么?
  5. 会计专硕(MPACC)毕业论文该选如何选题?
  6. iOS:图片的旋转方向问题
  7. 计算机性能低玩游戏卡顿,Win7电脑玩游戏很卡和FPS帧数太低的优化方法
  8. 今天差点就被黑中介给骗了!!!!!!后怕中。。。
  9. MySQL 8.0 高可用之如何解决从库数据被修改引起的主从同步错误
  10. 多穿立体库系统四向车PLC流程控制