- 博客(7)
- 收藏
- 关注
原创 再识循环和内存存储
问题: int main() { int i=0; int arr[5]={0}; for(i=0;i<6;i++) { arr[i] = 0; printf(“hello world\r\n”); } } 以下程序执行的结果是什么? 第一反应就是:这很明显就是数组越界了,访问了非法内存,出现段错误。 其实不然,真正的结果是循环打印hello world。 我们来分析以下为何会出现这种情况: 基于Linux下,首先再一个函数中,变量之间的地址是连续的,当数组越界后,数组越
2021-08-25 14:59:22
217
1
原创 Linux下的空洞文件,静态库和动态库
一.空洞文件 什么是空洞文件:在UNIX文件操作系统中,文件的位移量可以大于文件的当前长度。在这种情况下,对文件的下一次写将延长该文件,并在文件中构成一个空洞,这一点是允许的。位于文件中但没有写的字节都被设为0。 创建一个空洞文件:1.以只写的方式打开该文件 2.移动文件指针,移动1G 3.在文件末尾写一个字节 ...
2021-08-25 10:52:58
245
原创 Linux下标准IO和文件IO
Linux下IO分为两种,标准IO和文件IO。 标准IO是什么:标准IO用结构体类型(FILE)来存放文件的相关信息,标准IO所有操作都是围绕FILE来进行的。 下面列举一些我们在LinuxOS下通常用到的API。 文件的打开: #include <stdio.h> FILE *fopen(const char *path, const char *mode); 函数功能:打开文件 参数1:文件名 (可包含路径) ...
2021-08-24 17:34:22
424
原创 Linux下的IO操作
什么是io,通俗来讲io就是输入输出。在LinuxOS下,提供了一系列操作IO的函数。 讲述IO之前首先来了解一下什么是系统调用,什么又是缓冲机制。 系统调用:1.有操作系统的情况下,应用程序要访问硬件也就是内核,不允许直接访问,必须通过操作系统提供的系统调用接口来完成。 2.不同的操作系统提供的系统调用函数不同。 缓冲类型:1.全缓冲(当流的缓冲区无数据或无空间时才执行实际的IO操作) 2.行缓冲(当输入和输出遇到换行符时,才会进行实际的IO操作) ...
2021-08-09 19:27:21
807
原创 QT/C++高级编程(中)
继上篇文章,主要讲述用Qt实现网络编程。 一.网络编程(实现客户端和服务器的通信) 客户端ui界面设计图: 1.添加网络编程模块 QT += core gui network 2.头文件中声明一个服务器消息的槽函数 3.构造函数中,初始化_socket,将头文件中的槽函数与readyRead...
2021-08-05 16:23:13
493
原创 QT/C++高级编程(上)
本编文章主要展示用qt来实现进程,线程。 一.进程 如何在QT中启动一个新的进程? 方法一:1.窗体中设置pushButton,按钮转到槽 2.在头文件中添加进程类 : #include<QProcess> 3.槽函数中打开想要打开的进程,可以是windows中的进程,也可以说是自己编译的可执行程序。 例如:QProcess...
2021-08-04 22:47:57
608
2
原创 QT中的鼠标追踪器
用qt设计简易的鼠标追踪器。 一.界面展示 随着鼠标的移动,label框里的坐标值随之发生变化。 二.程序所需要的类 三.源码 1.在窗体类中声明鼠标移动事件方法和绘画事件方法,并定义两个坐标原点 2.在构造函数中设置窗体颜色,并令鼠标跟踪属性生效 3.重写鼠标移动事件方法(解析见代码) 4.重写绘画事件方法 总结步骤: 1.生成一个空白窗体widget,并在窗体上添加两个label子控件 2.设置背景颜色,打开鼠标...
2021-08-03 20:29:42
1061
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅