电子科技大学数据库与软件工程实验报告一

news2024/11/28 0:46:16

适用于网络工程和物联网专业(信通学院)

实验报告格式和内容如下(仅供参考,具体还需要自己理解)

本实验有一个陷阱****:安装Centos系统的时候,分配区的大小的时候一定要默认,不能自己分,不然后面配置会出错

目录

本实验有一个陷阱****:安装Centos系统的时候,分配区的大小的时候一定要默认,不能自己分,不然后面配置会出错

一、实验目的

二、实验内容

三、实验软件

四、实验步骤及数据记录

1.CentOS安装

2.Oracle安装准备

3. 安装Oracle

五、实验结论及思考题

六、总结及心得体会

七、对本实验过程及方法、手段的改进建议


一、实验目的

1、掌握和熟悉 Linux 操作系统的 shell 基本命令的操作;

2、了解 Oracle 数据库的基本组成;

3、掌握 Oracle 的安装和配置及基本工具的使用。

二、实验内容

在虚拟机中安装 CentOS 操作系统。然后在 CentOS 上安装、运行 Oracle 数据库,通过 em 控制台查看数据库状态,手动启动 Oracle 实例和监听。

在 Windows 系统中安装 SQL Developer,连接虚拟机中的 Oracle 数据库,创建一个学生学号用户。

三、实验软件

CentOS 安装软件: CentOS-6.7-x86_64-bin-DVD1.iso

Oracle 安装软件: linux.x64_11gR2_database_1of2.zip

linux.x64_11gR2_database_2of2.zip

SQL Developer 安装软件:

32 位:sqldeveloper-17.2.0.188.1159-no-jre.zip、jdk-8u141-windows-i586.exe

64 位:sqldeveloper-17.2.0.188.1159-x64.zip

四、实验步骤及数据记录

1.CentOS安装

1)启动 VMware,使用“典型”配置新建虚拟机

​2)安装来源选择为“安装程序光盘映像文件”,安装方式为方案 2:适用于侧重用户信息的情况,是比较简单的分区方案

​3)输入用户名、密码信息

​4)选择安装位置。

​5)磁盘容量建议为 ****30G****。

​6)“自定义硬件”修改设置后开始安装,内存建议 2G(至少 1152MB)。

​7)安装成功后,使用 root 用户登录进入 CentOS 系统桌面,即在登录界面

选择“Other…”,将登入进入的 CentOS 系统桌面,系统桌面如图。

2.Oracle安装准备

2.1硬件环境检查

使用 root 用户登录进入 CentOS 系统桌面后,在终端命令行窗口中检查安装,运行 Oracle 所需的硬件环境,包括内存、Swap 空间、tmp 空间及 Oracle 软件安装所需的硬件空间检查。

​1)查看操作系统版本信息,在终端中输入以下命令

​ [root@localhost ~]# cat /proc/version

​ [root@localhost ~]# uname –r

​ 结果如图所示:

2)查看机器内存大小,在终端中输入以下命令

[root@localhost ~]# grep MemTotal /proc/meminfo

结果如图所示

 3)查看swap空间大小,在终端中输入以下命令

[root@localhost ~]# grep SwapTotal /proc/meminfo

 

4)查看/tmp目录的空闲空间,在终端中输入以下命令

 [root@localhost ~]# df -h /tmp

 

5)查看机器中每个磁盘的空闲空间,在终端中输入以下命令

[root@localhost ~]# df –h

 

2.2系统必须的RPM包检查

1)使用以下命令检查“三、实验原理”之“4.Oracle 数据库安装运行环境。

 [root@localhost ~]#rpm -qa | grep

 

缺少的都需要安装相关的软件包,在 CentOS 安装光盘文件的 Packages 目录下可以查询到所用相关的软件包,将这些软件包复制到 root 目录下。

2)通过以下命令将缺少的RPM包安装好: [root@localhost ~]#rpm –ivh

注意:在安装软件包的过程中,会遇到包之间的依赖关系(单独安装时会有错误提示),这时可以同时安装这两个相依赖的包。

[root@localhost ~]#rpm –ivh <software package 1> <software package 2>

2.3 创建系统用户组合用户

​ 1)创建 Oracle Inventory 组

​ [root@localhost ~]#groupadd oinstall

​ 2)创建 OSDBA 组

​ [root@localhost ~]#groupadd dba

​ 3)创建 Oracle 软件创建者

​ [root@localhost ~]# useradd -g oinstall -G dba Oracle

​ 4)修改 Oracle 用户的密码

​ [root@localhost ~]# passwd Oracle

​ 5)创建安装 Oracle 软件所需要的目录

​ [root@localhost ~]# mkdir -p /home/Oracle_11g

​ [root@localhost ~]# chown -R Oracle:oinstall /home/Oracle_11g

​ [root@localhost ~]# chmod -R 775 /home/Oracle_11g

2.4 修改内核参数等配置文件

1)修改/etc/sysctl.conf 文件

​ [root@localhost ~]#vim /etc/sysctl.conf

​ 在打开的文件底部添加以下内容:

fs.aio-max-nr = 1048576

​ fs.file-max = 6815744

​ kernel.shmall = 2097152

​ kernel.shmmax = 536870912

​ kernel.shmmni = 4096

​ kernel.sem = 250 32000 100 128

​ net.ipv4.ip_local_port_range = 9000 65500

​ net.core.rmem_default = 262144

​ net.core.rmem_max = 4194304

​ net.core.wmem_default = 262144

​ net.core.wmem_max = 1048586

改变当前系统内核参数值(让/etc/sysctl.conf 立即生效)

​ [root@localhost ~]# sysctl –p

2)修改/etc/security/limits.conf 文件

​ [root@localhost ~]#vim /etc/security/limits.conf

在打开的文件底部添加以下内容:

Oracle soft nproc 2047

​ Oracle hard nproc 16384

​ Oracle soft nofile 1024

​ Oracle hard nofile 65536

​ Oracle soft stack 10240

3)修改/etc/pam.d/login 文件

​ [root@localhost ~]#vim /etc/pam.d/login

在打开的文件中添加以下内容:

session required /lib/security/pam_limits.so

​session required pam_limits.so

4)修改/etc/profile 文件

​ [root@localhost ~]#vim /etc/profile

在打开的文件中添加以下内容:

if [ $USER = “Oracle” ]; then

​ if [ $SHELL = “/bin/ksh” ]; then

​ ulimit -p 16384

​ ulimit -n 65536

​ else

​ ulimit -u 16384 -n 65536

​ fi

​ fi

2.5 设置Oracle环境变量

​ 1)切换到 Oracle 用户,查看有没有“.bash_profile”文件:

​ [root@localhost ~]# su - Oracle

​ [Oracle@localhost ~]$ pwd  /home/Oracle

​ [Oracle@localhost ~]$ ls –al

​ 如果没有该文件,可以将 root 目录下的.bash_profile 文件复制到/home/Oracle目录下。

​ 当 Oracle 用户登录进来时,.bash_profile 文件会自动执行。编辑此文件设置Oracle 环境变量。

​ [Oracle@localhost ~]$ vi .bash_profile

​ 在打开的文件中添加以下内容,要求以实验者姓氏拼音和名的首字母来命名oracle 实例:

export ORACLE_BASE=/home/Oracle_11g //数据库安装位置

​ export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

​ export ORACLE_SID=**zhangs** //数据库实例名,例如:*张三*

​ export PATH=ORACLEHOME : ORACLE_HOME/bin:ORACLEHOME/bin:PATH

​ export LD_ASSUME_KERNEL=2.6.18

​ export LD_LIBRARY_PATH= ORACLEHOME / l i b : ORACLE_HOME/lib:ORACLE

H

 OME/lib:LD_LIBRARY_PATH

​ export DISPLAY=:0.0

退出Oracle用户

​ [Oracle@localhost ~]$ exit

​ 2)切换到 root 用户下将.bash_logout、.bash_profile 和.bashrc 三个文件复制到/home/Oracle_11g/目录下:

​ [root@localhost ~]# ls –al

​ -rw-r–r-- 1 root root 24 Jan 6 2007 .bash_logout

​ -rw-r–r-- 1 root root 335 Jul 17 16:10 .bash_profile

​ -rw-r–r-- 1 root root 176 Jan 6 2007 .bashrc

​ [root@localhost ~]# cp .bash_logout /home/Oracle_11g/

​ [root@localhost ~]# cp .bash_profile /home/Oracle_11g/

​ [root@localhost ~]# cp .bashrc /home/Oracle_11g/

​ 3)再切换到 Oracle 用户下,查看设置的 Oracle 环境变量,并截图记录在实验报告中。

​ [root@localhost Oracle]# su - Oracle

​ [Oracle@localhost ~]$ env | grep Oracle

​ [Oracle@localhost ~]$ env | grep DISPLAY

​ 查看的结果如图所示

 

3. 安装Oracle

3.1 运行安装程序

​ 首先将 压 缩 文 件 linux.x64_11gR2_database_1of2.zip和 linux.x64_11gR2_database_2of2.zip 上传到 root 用户目录下并解压,将解压后的 database 目录放到 home 下,更改 Oracle 用户权限。

​ [root@localhost ~]# unzip linux.x64_11gR2_database_1of2.zip

​ [root@localhost ~]# unzip linux.x64_11gR2_database_2of2.zip

​ [root@localhost ~]# mv database/ /home/

​ [root@localhost ~]# chown -R Oracle:oinstall /home/database/

3.2 图形界面安装Oracle

​ 注销 root 用户,切换 Oracle 用户登录 CentOS 系统桌面。

​ 运行/home/database/目录下的 runInstaller 后进入图形安装界面。下面是安装过程中需要注意的步骤:

​ 1)Configure Security Updates:不勾选接收安全更新的选项

​ 2)Installation Option:创建和配置数据库

​ 3)System Class:服务器类

​ 4)Grid Options:单实例数据库

​ 5)Install Type:高级安装

​ 6)Product Languages:英语和简体中文

​ 7)Database Edition:企业版

​ 8)Installation Location:安装基目录(Oracle Base)要与前面用户环境变量 所配置的基目录 (/home/Oracle_11g/)一致。

​ 9)Create Inventory:资料目录位于 Oracle 用户目录下。

​ 10)Configuration Type:一般用途/事务处理

​ 11)Database Identifiers:配置 Global database name 和 SID,与“2.5 设置Oracle环境变量”步骤中设置的实例名一致,否则监听启动会出现问题。

​ 12)Configuration Option:默认设置即可

​ 13)Management Options:使用 Database Control 管理数据库

​ 14)Database Storage:使用默认值 File System

​ 15)Backup and Recovery:不启用自动备份

​ 16)Schema Passwords:对所有账户使用相同的口令

​ 尽量不要采用弱口令,并且应牢记设置的口令。如果口令设置不符合 Oracle 推荐的标准,会进行提示,该提示可忽略,继续进行下一步。

​ 17)Operation System Groups:OSDBA 选择 dba 用户组,OSOPR 选择 oinstall 用户组

​ 18)Prerequisite Checks:Oracle 自动检查系统安装条件是否满足需求

​ 如检查不通过,Oracle 会给出具体提示。按照提示执行所需条件,执行完毕后重新检测即可。如缺失的软件包只是安装版本或位数与提示不同,则可忽略。

​ 19)Oracle 根据之前的配置信息安装数据库

​ 20)安装完成后提示需要运行脚本(参见步骤 3.3),点击“OK”按钮,关闭安装窗口。

3.3 运行脚本

​ 以 root 用户执行安装完成后提示要运行的 2 个脚本:

​ [root@localhost ~]# /home/Oracle/oraInventory/orainstRoot.sh

​ [root@localhost ~]# /home/Oracle_11g/product/11.2.0/dbhome_1/root.sh

3.4 登录em控制台查看数据库状态

图2.em控制台中数据库的状态

 

重启CentOS系统之后,使用Oracle用户登录,使用命令启动em控制台如下:

 

3.5 手动启动数据库实例方法

​ 1)查看数据库监听状态

​ [Oracle@localhost ~]$ lsnrctl status

 

使用以下命令开启数据库监听

​ [Oracle@localhost ~]$ lsnrctl start

 

2)开启数据库监听后,启动数据库

​ [Oracle@localhost ~]$ sqlplus /nolog //进入 sqlplus

​ SQL> conn /as sysdba //进入 sysdba 模式

​ SQL> startup //启动数据库

​ SQL> exit //退出 sqlplus

 

3)查看数据库监听状态,确认数据库已被启动

 [Oracle@localhost ~]$ lsnrctl status

 

 4)查看 oracle 系统进程

​ [Oracle@localhost ~]$ ps -ef | grep ora_

 

4. 安装Oracle客户端:SQL Developer

​ 在计算机的 Windows 系统中将 SQL Developer 安装包解压到一个目录中即可。

4.1 测试与Oracle数据库的连接

​ 运行 SQL Developer 安装包解压目录下的 sqldeveloper.exe,使用“sys”或 “system”用户名测试与 Oracle 数据库的连接。

 

之后使用如下命令关闭虚拟机的防火墙,再次进行连接就成功了。

 

 

4.2 检查修改Oracle数据库的字符集

​ Windows 系统下的 SQL Developer 字符集与 Oracle 数据库字符集一致。本课程实验采用支持中文的 ZHS16GBK 字符集,即一个汉字占 2 个字节。

​ Oracle 数据库字符集可使用以下命令查询(监听和数据库实例均已开启):

​ [Oracle@localhost ~]$ sqlplus /nolog

​ SQL> conn /as sysdba

​ SQL> select userenv(‘language’) from dual;

​ SQL> exit

​ 查询结果如图所示:

 

查询获得的参数格式为“language_territory.charset”,即“语言_地域.字符集”。如果查询得到的 Oracle 数据库字符集不是 ZHS16GBK,则按照以下步骤修改Oracle 数据库字符集。

​ [Oracle@localhost ~]$ sqlplus /nolog

​ SQL> conn /as sysdba

​ SQL> shutdown immediate

​ SQL> alter system enable restricted session;

​ SQL> alter system set job_queue_processes=0;

​ SQL> alter system set aq_tm_processes=0;

​ SQL> alter database open;

​ SQL> alter database character set internal_use ZHS16GBK;

​ SQL> shutdown immediate

​ SQL> startup

​ SQL> exit

​ 再次查看 Oracle 数据库的字符集,结果如图所示:

 

5.使用SQL Developer创建用户

​ (1) 选择菜单栏“查看”→ \rightarrow→“DBA”选项

​ (2) 在 DBA 窗口中创建一个新连接:sys 用户,角色“SYSDBA”。

​ (3) 在 DBA 菜单中,展开“安全”à“用户”,在用户上点击鼠标右键,选择“新建”。

​ (4) 在“创建用户”窗口中,用户名为学号前加“stu”,口令为学号,并且选择默认表空间为“USERS”,临时表空间为“TEMP”。

​ (5) 切换到“授予的角色”标签,选择授予“CONNECT”、“DBA”、“RESOURCE”权限,点击“应用”按钮。成功后,弹出“成功”提示。

五、实验结论及思考题

实验结论:

在虚拟机中创建Oracle数据库,并在windows上使用SQL developer与虚拟机中的数据库建立联系,学习到了虚拟机中的数据库的基本搭建步骤,和解决一些错误的技能。同时对Oracle数据也有更进一步的认识。

思考题:

1、Linux root 用户和普通用户模式下提示符有什么区别?如何进行用户切换?

​ root用户的提示符为 #,而普通用户模式下的提示符为$,在root用户下可以用exit命令退出root用户,普通用户下可以用su命令进入root用户。

2、详细解释修改 sysctl.conf 文件时增加的每条系统参数的含义及设置规则。

fs.aio-max-nr = 1048576:此参数限制并发未完成的异步请求数目,应该设置避免I/O子系统故障

fs.file-max = 6815744:进程可以同时打开的做句柄数,直接限制了最大并发连接数,文件句柄设置表示在Linux系统的可以打开的文件数量

kernel.shmall = 2097152:表示系统一次可以使用的共享内存总量(以页为单位)

kernel.shmmax = 536870912:定义了共享内存段的最大尺寸

kernel.shmmni=4096:设置系统范围内共享内存段的最大数量,默认4096

kernel.sem = 250 32000 100 128:系统默认值,SA未优化

net.ipv4.ip_local_port_range = 9000 65500:查看端口范围,不要超过1024到65535,1024以下系统使用,65535以上会提示失败

net.core.rmem_default = 262144:默认的接受窗口大小为256K

net.core.rmem_max = 4194304:接收窗口大小最大

net.core.wmem_default = 262144:默认的发送窗口大小

net.core.wmem_max = 1048586:发送窗口最大

3、描述用“ps -ef | grep ora_”查看到的每个 Oracle 系统进程的具体作用。

​ PMON:监视其他后台进程,并在服务器或调度程序进程异常终止时执行进程恢复

​ VKTM:为时间间隔测量提供挂钟时间和参考时间

​ GEN0:执行所需的任务,包括 SQL 和 DML

​ DIAG:执行诊断转储

​ DBRM:设置资源计划并执行与数据库资源管理器相关的其他任务

​ PSP0:在初始实例启动后生成 oracle 后台进程

​ DIA0:检测和解决挂起和死锁

​ MMAN:用作实例内存管理器

​ DBWN:将修改后的块从数据库缓冲区缓存写入数据文件

​ LGWR:将重做条目写入在线重做日志

​ CKPT:在检查点发出信号 dbwn,并更新数据库的所有数据文件和控制文件,以指示最近的检查点.

​ SMON:执行关键任务,例如实例恢复和死事务恢复,以及维护任务,例如临时空间回收、数据字典清理和撤消表空间管理

​ RECO:解决由于分布式数据库中的网络或系统故障而挂起的分布式事务

​ MMON:执行或安排许多可管理的任务

​ MMNL:执行与可管理性相关的任务,包括活动会话历史采样和度量计算

​ QMNC:监视 aq

​ CJQ0:选择需要从数据字典中运行的作业,并生成作业队列从进程来运行这些作业

4、结合实验步骤 4.1,分析如果 Oracle 已启动,但是 SQL Developer 无法连接 Oracle 服务,应该怎样排查问题原因?

​1.查看Oracle是否已经开启数据库监听。

2.查看Oracle的系统进程是否正常。

3.查看输入的虚拟机IP是否正确。

4.查看虚拟机的防火墙是否关闭。

5、结合实验步骤 4.2 中关闭和启动 Oracle 实例的过程,总结 Oracle 启动所经历的状态改变。

​ SHUTDOWN、NOMOUNT、MOUNT、OPEN

六、总结及心得体会

实验中遇到的问题以及解决办法:

1.一开始,本人安装数据库是采用的是自定义安装,但是采用自定义安装数据库相关的配置文件会有一些问题,之后又采用的典型的默认安装,就成功安装了数据库。

2. SQL连接数据库时,无法连接到数据库。输入正确的虚拟机IP地址,并且虚拟机的防火墙应该关闭。

3.安装数据库必须的RPM包时,一开始直接去光盘映像文件中的packegs中查找,但是有几个包是缺少的,后来在网上查找到了。之后就是安装有关联关系的RPM包时,会遇到一系列问题,之后采用的yum的安装方式。

4.体会:安装数据库过程中一定要仔细认真,防止打错,一面后续排查的麻烦。

七、对本实验过程及方法、手段的改进建议

1.实验在选择安装方式对的时候应该注明自定义安装会有一些问题,需要自己解决一些报错的问题。

2.实验指导书在添加缺少的RPM包的那个步骤里面应该增加一个yum的安装方式,因为yum的安装方式十分的简便。

3.另外,可以适当增加一些SQL语言的练习,以便对学习的知识进行掌握。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/372757.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Maven的下载和安装【详细】

文章目录一、什么是Maven&#xff1f;二、Maven的安装与配置2.1下载Maven安装包2.2配置Maven环境变量2.3验证三、Idea配置Maven3.1配置 setting.xml文件3.2Idea配置Maven一、什么是Maven&#xff1f; Apache Maven是个项目管理和自动构建工具&#xff0c;基于项目对象模型&…

【力扣周赛#334】6369. 左右元素和的差值 + 6368. 找出字符串的可整除数组 + 6367. 求出最多标记下标

目录 6369. 左右元素和的差值 - 前缀后缀和 ac 6368. 找出字符串的可整除数组 - 操作余数ac 6367. 求出最多标记下标 - 二分答案 贪心 6369. 左右元素和的差值 - 前缀后缀和 ac class Solution {public int[] leftRigthDifference(int[] nums) {int nnums.length;int[] re…

开发同事辞职,接手到垃圾代码怎么办?

小王新加入了一家公司&#xff0c;这家公司有点年头&#xff0c;所以连屎山都是发酵过的&#xff0c;味道很冲。和大多数时运不济的程序员一样&#xff0c;到了这种公司&#xff0c;做的大多数工作&#xff0c;就是修补这些祖传代码&#xff0c;为其添砖加瓦。每当被折腾的筋疲…

ChatGPT的互补工具Perplexity的详细使用方法(持续更新)

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

Leetcode.1372 二叉树中的最长交错路径

题目链接 Leetcode.1372 二叉树中的最长交错路径 Rating &#xff1a; 1713 题目描述 给你一棵以 root为根的二叉树&#xff0c;二叉树中的交错路径定义如下&#xff1a; 选择二叉树中 任意 节点和一个方向&#xff08;左或者右&#xff09;。如果前进方向为右&#xff0c;那…

idea中maven只有Lifecycle,没有Dependencies

原因是idea和maven版本不兼容问题 我用的是idea2021&#xff0c;maven3.8.6 改成低版本maven就行了

(四十四)多个事务更新同一行数据时,是如何加锁避免脏写的?

之前我们已经用很多篇幅给大家讲解了多个事务并发运行的时候&#xff0c;如果同时要读写一批数据&#xff0c;此时读和写时间的关系是如何协调的&#xff0c;毕竟要是你不协调好的话&#xff0c;可能就会有脏读、不可重复读、幻读等一系列的问题。 简单来说&#xff0c;脏读、…

SpringMvc中HandlerAdapter组件的作用

概述 我们在使用springMVC时&#xff0c;都知道其中不仅包含handlerMapping组件还包含handlerAdapter组件&#xff0c;为什么呢&#xff1f; springMVC请求流程图 HandlerAdapter组件使用了适配器模式 适配器模式的本质是接口转换和代码复用&#xff0c;这里使用适配器模式的…

房屋出租管理系统

1. 铺垫 1.1 项目真实开发的过程 上来要做什么&#xff1f;&#xff1f;&#xff1f;&#xff1f; 有电脑—》配环境&#xff08;JDK、IDEA、MAVEN……&#xff09; 这个项目&#xff1a;房屋管理系统 从什么角度出发&#xff0c;第一步做什么&#xff1f;&#xff1f; 架构 …

晶体塑性有限元 Abaqus 三维泰森多边形(voronoi模型)插件 V7.0

1 上一版本完整功能介绍&#xff1a; Voronoi晶体插件-6.0版本[新功能介绍] 晶体塑性有限元 Abaqus 三维泰森多边形&#xff08;voronoi模型&#xff09;插件 V6.0 2 新增功能模块 7.0版本新增功能模块包括&#xff1a;柱状晶体模块和分层晶体模块。 2.1 二维柱状晶体模块 …

macOS使用CodeRunner快速配置fortran环境

个人网站:xzajyjs.cn 由于一些项目的缘故&#xff0c;需要有fortran的需求&#xff0c;但由于是M1 mac的缘故&#xff0c;不能像windows那样直接使用vsivf这种经典配置。搜了一下网上主流的跨平台方案&#xff0c;主要是gfortran&#xff0c;最近用Coderunner&#xff08;主要…

【Linux】网络套接字编程

前言 在掌握一定的网络基础&#xff0c;我们便可以先从代码入手&#xff0c;利用UDP协议/TCP协议进行编写套接字程序&#xff0c;明白网络中服务器端与客户端之间如何进行连接并且通信的。 目录 一、了解源目的IP、端口、网络字节序、套接字 端口号&#xff1a; 套接字&…

深入探究文件I/O

目录Linux 系统如何管理文件静态文件与inode文件打开时的状态返回错误处理与errnostrerror 函数perror 函数exit、_exit、_Exit_exit()和_Exit()函数exit()函数空洞文件概念实验测试O_APPEND 和O_TRUNC 标志O_TRUNC 标志O_APPEND 标志多次打开同一个文件验证一些现象多次打开同…

MS9132是一款USB 3 0投屏芯片,内部集成USB 3 0 Device控制器、数据收发模块、音视频处理模块

MS9132是一款USB 3.0投屏芯片&#xff0c;内部集成USB 3.0 Device控制器、数据收发模块、音视频处理模块。MS9132可以通过USB 3.0接口将PC、智能手机、平板电脑上的信息显示或扩展到更大尺寸的显示设备&#xff0c;支持HDMI视频接口输出。 主要功能特征 HDMI 1.4b兼容 支持EDI…

C语言汉诺塔问题【图文详解】

汉诺塔1. 什么是汉诺塔2. 有关汉诺塔的有趣故事3. 利用动画来演示汉诺塔4. 如何用C语言实现汉诺塔1. 什么是汉诺塔 源于印度古老传说的益智玩具 汉诺塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;又称河内塔&#xff0c;是一个源于印度古老传说的益智玩具。大梵天创造…

一起Talk Android吧(第五百零六回:如何调整组件在约束布局中的角度)

文章目录背景介绍相关属性使用方法示例程序各位看官们大家好&#xff0c;上一回中咱们说的例子是"如何调整组件在约束布局中的大小",这一回中咱们说的例子是"如何调整组件在约束布局中的角度"。闲话休提&#xff0c;言归正转&#xff0c; 让我们一起Talk A…

2、算法先导---思维能力与工具

题目 碎纸片的拼接复原(2013B) 内容 破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。传统上&#xff0c;拼接复原工作需由人工完成&#xff0c;准确率较高&#xff0c;但效率很低。特别是当碎片数量巨大&#xff0c;人工拼接很难在短时…

QT之OpenGL混合

QT之OpenGL混合1. 概述2. 实现2.1 丢弃片段2.1.1 Demo2.2 混合2.2.1 相关函数2.2.2 排序问题2.2.3 Demo1. 概述 OpenGL中&#xff0c;混合(Blending)通常是实现物体透明度(Transparency)的一种技术。 2. 实现 2.1 丢弃片段 在某些情况下&#xff0c;有些片段是只需要设置显…

尚医通(二十四)微信退款(取消预约功能)

目录一、取消预约1、需求描述2、开发取消预约接口一、取消预约 1、需求描述 取消订单分两种情况&#xff1a; &#xff08;1&#xff09;未支付取消订单&#xff0c;直接通知医院更新取消预约状态 &#xff08;2&#xff09;已支付取消订单&#xff0c;先退款给用户&#xff…