- 博客(14)
- 收藏
- 关注
原创 Linux系统编程之进程(三) 进程退出、子进程退出状态的收集、孤儿进程、僵尸进程
进程退出 进程退出分正常退出和异常退出 正常退出有五种: main函数调用return 进程调用exit(),标准C库 进程调用_exit() 或者 _Exit(),属于系统调用 进程最后一个线程返回 最后一个先线程调用 pthread_exit /*它要检查文件的打开情况,把文件缓冲区的内容写回文件,即“清理I/O缓冲”。*/ exit();//exit(0)正常退出;exit(1)异常退出 /*直接退出*/ _exit();//_exit(0)正常退出;_exit(1)异常退出 _Exit();/
2021-05-06 21:08:52
354
原创 C++入门之结构体
1、结构体基本概念 结构体属于用户自定义的数据类型,允许用户存储不同的数据类型 2、结构体定义和使用 语法: struct 结构体名{ 结构体成员变量列表 }; 通过结构体创建变量的方式有三种: struct 结构体名 变量名 struct 结构体名 变量名 = { 成员1值 , 成员2值…} 定义结构体时顺便创建变量 代码示例: //结构体定义 struct student { //成员列表 string name; //姓名 int age; //年龄 int score;
2021-05-06 10:29:29
566
原创 Linux系统编程之进程(二) 进程创建 fork() vfork()
fork() 函数创建进程 1.函数原型 pid_t fork(void) 2.函数说明 fork函数调用成功,返回两次 返回值为0,代表当前进程是子进程 返回值为非负数,代表当前进程是父进程,父进程的返回值为子进程的pid 调用失败,返回-1 代码示例: int main() { int PID=0; int fork_r=0; PID=getpid(); printf("before fork pid=%d\n",PID);
2021-05-05 15:47:07
334
转载 C++入门之指针
1.指针变量的定义和使用 定义语法: 数据类型 *变量名; 代码示例: int main() { //1、指针的定义 int a = 10; //定义整型变量a //指针定义语法: 数据类型 * 变量名 ; int * p; //指针变量赋值 p = &a; //指针指向变量a的地址 cout << &a << endl; //打印数据a的地址 cout << p << endl; //打印指针变量p //2
2021-05-05 14:57:32
128
原创 C++入门之函数
1.概述 作用: 将一段经常使用的代码封装起来,减少重复代码。 一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。 2.函数定义 定义步骤: 返回值类型 函数名 参数列表 函数体语句 return表达式 语法: 返回值类型 函数名 (参数列表) { 函数体语句 return表达式 } 代码示例: 定义一个加法函数,实现两个数相加 //函数定义 int add(int num1, int num2) { int sum = num1 + num2; retur
2021-05-05 14:36:48
117
原创 C++入门之数组
一维数组 定义方式 1. 数据类型 数组名[ 数组长度 ]; 2. 数据类型 数组名[ 数组长度 ] = { 值1,值2 ...}; 3. 数据类型 数组名[ ] = { 值1,值2 ...}; 代码示例 int main() { //定义方式1 //数据类型 数组名[元素个数]; int score[10]; //利用下标赋值 score[0] = 100; score[1] = 99; score[2] = 85; //利用下标输出 cout << scor
2021-05-05 10:04:45
294
原创 C语言之内存分区
1. 内存区域 C编译的程序占用的内存分为以下几个区域 代码区 全局区/静态区 栈区 堆区 划分 程序运行前: 代码区、全局区/静态区 程序运行后:栈区、堆区 2. 内存四区 代码区 作用:存放CPU执行的二进制机器指令 特点:只读、共享 栈区 栈是一种先进后出的内存结构,由编译器自动分配释放数据 主要存放函数的形式参数值、局部变量等 函数运行结束,相应栈变量会被自动释放 栈空间较小,不适合将大量数据存放在栈中 管理方式:编译器自动管理该区内存
2021-05-04 22:23:39
154
原创 C语言之内存分区
1. 内存区域 C编译的程序占用的内存分为以下几个区域 代码区 全局区/静态区 栈区 堆区 划分 程序运行前: 代码区、全局区/静态区 程序运行后:栈区、堆区 2. 内存四区 代码区 作用:存放CPU执行的二进制机器指令 特点:只读、共享 栈区 栈是一种先进后出的内存结构,由编译器自动分配释放数据 主要存放函数的形式参数值、局部变量等 函数运行结束,相应栈变量会被自动释放 栈空间较小,不适合将大量数据存放在栈中 管理方式:编译器自动管理该区内存
2021-05-04 22:20:35
613
原创 Linux分文件编程及静态库、动态库的制作和使用
分文件编程 分模块的编程思想,按功能进行模块化编程 功能责任划分明确 方便调试 主程序简洁 静态库 libxxx.a 在编译时就将库编译进可执行程序 优点:程序的运行环境中不需要外部的函数库,运行快 缺点:可执行程序大 制作 生成目标文件 .o 文件: gcc -c func.c ar -rcs libfunc.a func.o 编译 gcc main.c -lfunc -L ./ -o mainStaticLib -L 指定静态库的位置 -l 指定静..
2021-05-04 21:34:56
247
2
原创 Linux系统编程之进程(一) 五个关键概念
什么是程序?什么是进程?有什么区别? 程序:描述在运行时如何创建一个进程 程序是静态的概念,是存储在硬盘的可执行文件 进程:程序的一次运行活动 如何查看系统中有哪些进程? ps -aux 查看系统中的所有进程 ps -aux | grep init 查找init 进程 top 类似Windows任务管理器 什么是进程标识符? 每个进程都有一个非负表示的唯一ID,叫做pid pid=0 交换进程(swapper) 作用:进程调度 pid=1 init进程(初..
2021-05-04 11:19:42
156
原创 Linux系统编程之文件(三) 应用
Linux系统编程 —— 文件编程(3) 应用 main函数传参 #include <stdio.h> //argc 命令行参数个数 //argv 命令行参数内容 int main(int argc, char *argv[]) { printf("argc = %d\n"); for(i=0; i<argc; i++){ printf("argv[%d] = %s\n", i, argv[i]); } } 实现cp指令 #include &l
2021-05-04 09:44:13
108
原创 Linux系统编程之文件(二) 光标移动 文件大小
Linux系统编程——文件编程(2) lseek() 光标移动 1.使用场景 进行文件写入与文件读出时,需注意光标位置,当写入发生后,光标不会自动跳转到文件头,需重新打开文件或移动光标。 每一个已打开的文件都有一个读写位置,当打开文件时通常其读写位置是指向文件开头。 以附加的方式打开文件(如O_APPEND),则读写位置会指向文件尾。当read()或write()时,读写位置会随之增加,lseek()便是用来控制该文件的读写位置(光标所在位置)。 2.包含头文件 #include <sys/t
2021-05-03 11:34:50
212
原创 Linux系统编程之文件(一) 文件创建/打开、写入、读取、关闭
Linux系统编程——文件编程(1) 文件创建/打开、写入、读取 文件编程的一般步骤 打开/创建文件 读取文件/写入文件 关闭文件 creat()函数—创建文件 1.包含头文件 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> 2.函数原型 int creat(const char *pathname, mode_t mode); 3.参数说明 pathname:文件路径(绝对路径/
2021-05-03 11:07:44
838
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅