sco unix和linux区别,SCOUNIX到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。
全部
sco unix和linux区别,SCOUNIX到Linux操作系统的程序移植问题有哪些呢?相关推荐
- solaris与linux区别,solaris与linux命令的区别
最近使用axis2做webservice,在solaris上使用axis2生成客户端,当执行命令 export JAVA_HOME=/usr/j2se 设置环境变量时,报如下的错误: JAVA_HOM ...
- linux和unix区别_Unix vs Linux – Unix和Linux之间的区别
linux和unix区别 Here you will learn about difference between unix and linux i.e. unix vs linux. 在这里,您将了 ...
- 宏内核与微内核、Linux内核与Unix内核的区别
宏内核:简单来说,就是把很多东西都集成进内核,例如linux内核,除了最基本的进程.线程管理.内存管理外,文件系统,驱动,网络协议等等都在内核里面.优点是效率高.缺点是稳定性差,开发过程中的bug经常 ...
- Mac终端指令总结「Unix/Linux区别和联系、终端指令原理、Mac目录结构」
一.认识UNIX和Linux 1.了解Unix和Linux的关系 下图Unix族谱 3.UNIX/Linux系统结构 UNIX/Linux 系统可以粗糙地抽象为 3 个层次(所谓粗糙,就是不够细致.精 ...
- 服务器运维用macos,MacOS和Linux区别_网站服务器运行维护,linux,macos
MacOS catalina升级后Vmware黑屏的问题解决_网站服务器运行维护 macOS Catalina是苹果macOS全新版本.本文就来为大家介绍一下MacOS catalina升级后Vmwa ...
- RTOS与linux区别
一句话解释: linux是分时系统,不过可以通过配置内核改成实时. 嵌入式Linux 系统是在原来Linux的发行版本之上进行了优化和改进的,用于嵌入式的移动终端等设备的嵌入式Linux系统现在基本上 ...
- 为什么在Unix下编程,而不在Linux下编程
现在Linux是网络上相对火爆的词语,仅在Google中搜索关键词"Linux"就有4亿6千万的页面数:求职时如果你只会个Windows根本就不好意思与人打招呼,会个Unix怕别人 ...
- Linux和UNIX“新手”们必备的与Linux系统编程相关的基本概念
1 操作系统的核心--内核 术语"操作系统"通常包含两种不同含义. 1.指完整的软件包,这包括用来管理计算机资源的核心层软件,以及附带的所有标准软件工具,诸如命令行解释器.图形用户 ...
- 初识Linux操作系统,Linux的特点与其他操作系统的区别,及Linux版本划分
操作系统 操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石.操作系统需要处理如管理与配置内存.决定系统资源供需的优先次序.控制输入设备与输出设备.操作网络与管理文件系统等 ...
最新文章
- centos下pg_dump的服务器版本不匹配问题
- 西安交大计算机考研分数线2020院线,西安交通大学2020研究生复试分数线预计4月中旬左右公布...
- 在 vue 组件中查看 vuex 定义
- [系统底层] x86和x64下ssdt的差异
- python解码和编码的区别_python基础小知识,is和==的区别,编码和解码
- mysql pdo 获取最后一条sql_一条sql语句的执行过程-mysql
- python,opencv利用自适应阈值分割法实现微滴图像分割并计数
- 电商帝国阿里巴巴起跑中国量子产业
- 随机产生大写字母c语言,C语言程序设计 (英文打字练习)
- CHM 格式打开不显示网页
- 三维建模技术是如何发展的
- 阿里巴巴大数据竞赛(2014年3月10日到11月)
- 学it需要学历吗_低学历者是否适合学IT?IT行业对学历要求高吗
- python文件操作实现全文或单行替换
- 软件使用小技巧-Linux疑难杂症
- RDP 协议组件 X.224 在协议流中发现一个错误并且中断了客户端连
- 智能穿戴新方向华米科技血压手表相当于A类血压计申请标准
- ES MQ canal同步mysql
- 以太坊源码分析(10)CMD深入分析
- 科技创梦 乐赢未来!第十九届ChinaJoy如期开幕
热门文章
- Android 生成二维码
- 基于MODIS影像的TVDI指数干旱监测
- [YOLO专题-11]:YOLO V5 - ultralytics/train基于自定义图片数据集重新训练网络, 完成自己的目标检测
- 什么是 “use strict”; ? 使用它的好处和坏处分别是什么?
- 会计专硕(MPACC)毕业论文该选如何选题?
- iOS:图片的旋转方向问题
- 计算机性能低玩游戏卡顿,Win7电脑玩游戏很卡和FPS帧数太低的优化方法
- 今天差点就被黑中介给骗了!!!!!!后怕中。。。
- MySQL 8.0 高可用之如何解决从库数据被修改引起的主从同步错误
- 多穿立体库系统四向车PLC流程控制