- 博客(26)
- 收藏
- 关注
原创 进程(3)
进程间通信 基本概念: 什么是进程间通信: 是指两个或多个进程之间交互数据的过程,是因为进程之间是相互独立的,为了协同工作的需要必须交互数据 进程间通信的分类: 简单的进程间通信:信号、文件、环境变量、命令行参数 传统的进程间通信:管道文件 XSI进程间通信: 共享内存、消息队列、信号量 网络进程间通信: 套接字Socket传统的进程通信-...
2021-10-25 20:14:15
213
原创 进程(2)
进程的正常退出: 1.在main函数中执行 return n;该返回值可以被父进程接收到的,在main函数中与exit几乎等价的 2.进程只有调用了exit函数,就能正常退出,该函数时标准库函数 void exit(int status); 功能:在任何时候调用此函数,都可以结束进程 status:结束状态码 EXIT_SUCCESS EXIT_FAILURE 效果与m...
2021-10-25 20:13:22
150
原创 进程(1)
进程的基本概念:1.程序与进程程序就这存储在磁盘上的可执行文件,当程序被加载到内存中开始运行时就叫做进程一个程序可以被多次加载生成多个进程,进程就是出于活动状态的计算机程序2.进程的分类进程一般分为三类:交互进程、批处理进程、守护进程守护进程一般都处于活跃状态,运行在后台,由操作系统在开机时通过启动脚本自动创建3.查看进程简单形式:ps显示当...
2021-10-16 16:34:47
192
原创 Linux 信号处理
信号处理:基本概念:1.中断当进程接收到信息后中止当前正在执行的进程,转而去执行其他任务,等其他任务完成后再返回执行原任务,这种执行模式称为中断模式可分为:硬件中断和软件中断2.信号是一种软件中断,由操作系统发出,进程接收后会执行相应的操作3.常见的信号kill-l显示出所有的信号SIGINT(2)Ctrl+c终止SIGQU...
2021-10-12 19:51:17
252
原创 Linux 文件调用
一、文件同步:1.在写入数据时内存与磁盘直接也有一个缓冲区,这种机制降低了磁盘的读写次数,提高了读写的效率2.这种机制带来的后果就是磁盘中的数据与实际写入的数据不匹配,系统提供了三个函数可以让缓冲区中的数据立即写入到磁盘上voidsync(void);功能:吧缓冲区中的数据立即同步到磁盘上注意:并不会等待数据全部同步完,而是把缓冲区的数据全部加入到写入队列后,立即返回intfsync(intfd);功能:把指定...
2021-10-12 19:49:44
405
原创 Linux的系统调用
一、系统调用(API)系统调用就是操作系统提供的一些功能给程序员使用,这些功能已经被封装成C函数的形式,但它们不是标准C函数的一部分一般应用程序运行在用户态(使用的是0~3G的虚拟内存),系统调用时工作在内核态,使用的是(3~4G的虚拟内存)常用的标准库的函数,绝大部分时间运行在用户态,底层偶尔也会调用系统进入内核态二、一切皆文件UNIX/Linux为操作方便把所有的服务、设备等内容都抽象成了文件的形式,闭关提供了一套简单而统一的接口,这部分...
2021-09-22 18:47:41
367
原创 Linux 的内存管理机制
一、内存管理 用户层 STL 自动分配、释放内存 调用C++ C++ new/delete 调用C 调用C malloc/free 调用POSIX POSIX brk/sbrk 调用linux系统函数 Linux mmap...
2021-09-22 18:44:27
119
原创 开始学习Linux
程序员必备技能: 至少一门编程语言:C语言、C++ 数据结构与算法:表、树、图、查找、排序、STL 操作系统:UNIX/Linux系统 网络编程:TCP\IP(Socket技术/TCP、UDP、FTP协议) 数据库:MySQL 界面设计:Qt课程介绍: 环境介绍 内存管理 文件处理 信号处理 进程管理 进程通信 线程管理 线程同步 网路编程UNIX系统介绍: BCPL-...
2021-09-22 18:40:43
132
原创 简单双向链表的实现
#include <stdio.h>#include<stdlib.h>#include<stdbool.h>#define TYPE int//节点typedef struct Node{ struct Node* prev; TYPE data; struct Node* next;}Node;//创建节点Node* create_node(TYPE data){ Node* node =malloc(sizeo...
2021-08-15 10:37:23
125
原创 开始学习数据结构啦
一、什么是数据结构1.数据结构的起源1968年,美国高德纳教授,《计算机程序设计艺术》第一卷《基本算法》的出版,开创了数据结构和算法的先河。数据结构是一门研究数据之间关系和操作的学科,而非计算方法数据结构+算法=程序,沃斯凭借这个观点拿到了图灵奖,这句话展示了程序的本质2.数据结构的基本概念数据:所有能输入到计算机中,能被程序处理的描述客观事物的符号数据项:有独立含义的最小单位,也叫做...
2021-08-15 10:36:46
98
原创 C语言中有关文件的操作
文件的分类:文本文件:存储的是ASCII码的二进制二进制文件:存储时数据的补码文件IO:FILE*fopen(constchar*path,constchar*mode);功能:打开或创建文件path:文件的路径mode:打开模式r以只读权限打开文件,如果文件不存在则打开失败r+在r的基础上增加写权限...
2021-08-09 08:23:07
192
原创 C语言实现电话簿(改良后)
#include <stdio.h>#include<getch.h>#include<stdlib.h>#include<string.h>static char name[50][20];static char sex[50];static char tel[50][13];static int count=0; //记录有效联系人个数void show_msg(const char* masg,double sec){ ...
2021-07-27 20:38:38
229
原创 用C语言实现电话簿(初版)
#include <stdio.h>#include<getch.h>#include<string.h>#include<stdlib.h>char name[50][20]={};char sex[50][10]={};char tel[50][13]={};void add(void);void del(void);void change(void);void find(void);void display(void);int s
2021-07-27 18:39:28
514
原创 你要和我来一盘五子棋嘛( •̀ ω •́ )✧
#include <stdio.h>#include<getch.h>#include<stdlib.h>char board[15][15];int flag=1; //用于交换棋子void printboard(void);void play(int x,int y);int judge(void);int main(int argc,const char* argv[]){ int i,j,x=7,y=7; for(i=...
2021-07-19 19:22:46
122
原创 C语言中的进制转换
进制转换:为什么要使用二进制、八进制、十六进制?因为现在的CPU只能识别高低两种电流,只能对二进制数据进行计算二进制数据虽然可以直接被CPU识别计算,但是不方便书写、记录,所以把二进制数据转换成八进制是为了方便记录到文档中随着CPU的不断发展位数不停增加,由早期的8位逐渐发展到现在的64位,因此八进制不再能满足需求,所以发展出了十六进制,由于历史原因八进制还不能完全地退出历史舞台。十进制转二进制:(转其他进制...
2021-07-17 16:51:47
719
原创 函数的练习
1、实现一个函数,判断整数是否是素数,调用该函数显示出100~10000之间的所有素数#include <stdio.h>int sushu(int a);int main(int argc,const char* argv[]){ int i,sum=0,a; for(i=100;i<10000;i++) { a=sushu(i); if(a==1) { printf("%d ",i...
2021-07-17 16:48:12
193
原创 函数与数组
数组:相同类型变量的组合,是一种批量定义变量的方式 定义:类型 数组名[数量] 如 int arr[5]; 使用:数组名[下标];(下标是从0开始的) 遍历:与for循环配合,使用循环变量i当作数组的下标 初始化: 类型 数组名[数量]={1,2,3,4,...}; 1.数组与普通变量一样默认值是随机的,为了安全要对数组进行初始化 2.这种初始化语法只能在定义数组时使用,并且只能逐个赋值,不能整体赋值 3.当初始化数据过多时,编译器会产生警告并...
2021-07-17 16:42:26
509
原创 优化后的推箱子
#include <stdio.h>#include <getch.h>#include <stdlib.h>int main(int argc,const char* argv[]){ char map[8][8] = { {0,0,1,1,1,1,0,0}, {0,0,1,4,4,1,0,0}, {0,1,1,0,4,1,1,0}, {0,1,0,0,3,4,1,0}, {1,1,0,3,0,0,1,1},...
2021-07-15 08:27:27
69
原创 练两个C语言小程序(走迷宫and推箱子)
1走迷宫#include <stdio.h>#include<getch.h>#include<time.h>#include<stdlib.h>int main(int argc,const char* argv[]){ //定义迷宫地图 char maze[10][10]={ {1,1,1,1,1,1,1,1,1,1}, {1,1,0,0,0,0,0,0,1,1}, {1,1,0...
2021-07-14 20:06:35
141
原创 接上一篇小练习的代码
毕竟还刚开始学习,代码还有很多需要改进的地方的1;计算所有的水仙花数#include <stdio.h>int main(int argc,const char* argv[]){ int i,a,b,c,j=1,num[20]; for(i=100;i<=999;i++){ a=i/100;b=i%100/10;c=i%10; if(i==a*a*a+b*b*b+c*c*c) { nu...
2021-07-10 09:53:57
79
原创 开始正式学习C语言
C语言简介:BCPL->newB->C->UNIX->Minix->Linux->gccC语言诞生于1970-1973年之间,在肯.汤普逊和丹尼斯.里奇的主导下编写完成,目前C语言归属于美国贝尔实验室C语言是专门为了编写操作系统而诞生的语言,所以天生适合硬件编程,以运行速度快而著称,也非常适合实现数据结构与算法。由于出现时间过早,C语言是存在非常多的缺陷。但前辈们总结了一些经验,可以用于避免大部分缺陷。(...
2021-07-10 09:37:50
457
原创 Ubuntu 的一些命令
网络相关的非系统命令: ftp ip地址 然后输入用户名和密码(和服务器采用明码传输,不够安全,一般在公司内部使用) telnet ip地址 然后输入用户名和密码(和服务器采用明码传输,不够安全,一般在公司内部使用) 还可用于远程登陆服务器 ssh 用户名2ip地址,然后输入密码,(和服务器采用加密传输,比较安全) exit退出其他相关命令 tar 压缩/解压文件 -zcv...
2021-07-10 09:33:19
199
1
原创 开始学习C语言
学习工具、网站、方法分享代码的平台:GitHub、码云总结知识点平台:CSDN、博客园笔试面试题:牛客网、力扣、pat问答网站:思否、知乎抖音、今日头条思维导图(xmind):总结归纳知识点Makedown typora文本编辑器:vs code视频播放器:potplayer开发环境: VirtualBox 虚拟机工具(免费开源) Ubuntu 14.04 LTS vim 代码编辑器 gcc 编译器Linux系统(UNIX) BCPL->...
2021-07-10 09:25:24
121
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人