自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小笨男孩博客

菜鸟学习!

  • 博客(14)
  • 收藏
  • 关注

原创 Linux系统编程之进程间通信(一) IPC介绍

进程间通信的进程间通信的7种方式

2021-05-06 21:41:20 147

原创 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 269

原创 C++入门之结构体

1、结构体基本概念结构体属于用户自定义的数据类型,允许用户存储不同的数据类型2、结构体定义和使用语法:struct 结构体名{ 结构体成员变量列表};通过结构体创建变量的方式有三种:struct 结构体名 变量名struct 结构体名 变量名 = { 成员1值 , 成员2值…}定义结构体时顺便创建变量代码示例://结构体定义struct student{ //成员列表 string name; //姓名 int age; //年龄 int score;

2021-05-06 10:29:29 329

原创 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 246

转载 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 67

原创 C++入门之函数

1.概述作用: 将一段经常使用的代码封装起来,减少重复代码。一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。2.函数定义定义步骤:返回值类型函数名参数列表函数体语句return表达式语法:返回值类型 函数名 (参数列表){ 函数体语句 return表达式}代码示例: 定义一个加法函数,实现两个数相加//函数定义int add(int num1, int num2){ int sum = num1 + num2; retur

2021-05-05 14:36:48 69

原创 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 224

原创 C语言之内存分区

1. 内存区域C编译的程序占用的内存分为以下几个区域代码区全局区/静态区栈区堆区划分程序运行前: 代码区、全局区/静态区程序运行后:栈区、堆区2. 内存四区代码区作用:存放CPU执行的二进制机器指令特点:只读、共享栈区栈是一种先进后出的内存结构,由编译器自动分配释放数据​ 主要存放函数的形式参数值、局部变量等​ 函数运行结束,相应栈变量会被自动释放​ 栈空间较小,不适合将大量数据存放在栈中​ 管理方式:编译器自动管理该区内存

2021-05-04 22:23:39 79

原创 C语言之内存分区

1. 内存区域C编译的程序占用的内存分为以下几个区域代码区全局区/静态区栈区堆区划分程序运行前: 代码区、全局区/静态区程序运行后:栈区、堆区2. 内存四区代码区作用:存放CPU执行的二进制机器指令特点:只读、共享栈区栈是一种先进后出的内存结构,由编译器自动分配释放数据​ 主要存放函数的形式参数值、局部变量等​ 函数运行结束,相应栈变量会被自动释放​ 栈空间较小,不适合将大量数据存放在栈中​ 管理方式:编译器自动管理该区内存

2021-05-04 22:20:35 519

原创 Linux分文件编程及静态库、动态库的制作和使用

分文件编程分模块的编程思想,按功能进行模块化编程功能责任划分明确方便调试主程序简洁静态库libxxx.a 在编译时就将库编译进可执行程序优点:程序的运行环境中不需要外部的函数库,运行快缺点:可执行程序大制作生成目标文件 .o 文件: gcc -c func.car -rcs libfunc.a func.o编译gcc main.c -lfunc -L ./ -o mainStaticLib-L 指定静态库的位置-l 指定静..

2021-05-04 21:34:56 176 2

原创 Linux系统编程之进程(一) 五个关键概念

什么是程序?什么是进程?有什么区别?程序:描述在运行时如何创建一个进程​ 程序是静态的概念,是存储在硬盘的可执行文件进程:程序的一次运行活动如何查看系统中有哪些进程?ps -aux 查看系统中的所有进程​ ps -aux | grep init 查找init 进程top 类似Windows任务管理器什么是进程标识符?每个进程都有一个非负表示的唯一ID,叫做pidpid=0 交换进程(swapper)​ 作用:进程调度pid=1 init进程(初..

2021-05-04 11:19:42 97

原创 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 59

原创 Linux系统编程之文件(二) 光标移动 文件大小

Linux系统编程——文件编程(2) lseek() 光标移动1.使用场景进行文件写入与文件读出时,需注意光标位置,当写入发生后,光标不会自动跳转到文件头,需重新打开文件或移动光标。每一个已打开的文件都有一个读写位置,当打开文件时通常其读写位置是指向文件开头。以附加的方式打开文件(如O_APPEND),则读写位置会指向文件尾。当read()或write()时,读写位置会随之增加,lseek()便是用来控制该文件的读写位置(光标所在位置)。2.包含头文件#include <sys/t

2021-05-03 11:34:50 142

原创 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 695

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除