自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 MYSQL从入门到入土

show databases;//查看所有数据库use 数据库名字;//使用某个数据库select * from tablename;//查看数据中某个表的数据select * from tablename where ID=1;//显示ID为1的表中数据create database test;//创建一个名字叫test的数据库show tables;//查看数据库中存在的所有数据表CREATE TABLE pet(name varchar(20),sex CHAR(1),birth

2020-09-17 21:41:02 126

原创 系统编程 笔记12

创建会话组长进程不能创建会话getsid函数pid_t getsid(pid_t pid);成功返回会话ID,失败返回-1并设置errno.setsid函数创建一个会话,并以自己的ID设置进程组ID,同时也是新会话的ID。守护进程:是在linux的后台服务进程,也叫daemon进程,通常独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件,一般不与用户交互,一般采用以d结尾的名字。注销用户不影响这个运行。创建守护进程步骤1.创建子进程,父进程退出2.在子进程中创建新会话3.改

2020-09-03 08:37:13 133

原创 笔记一 网络编程

协议:一组规则如:ftp,tcp/udp,http…OSI 七层模型:物数网传会表应TCP/IP 四层模型:网网传应应用层:http,ftp,nfs,ssh,telnet…传输层:TCP,UDP网络层:IP,ICMP,IGMP链路层:以太网帧协议,ARPc/s模型(client-server):优点:缓存大量的数据(比如游戏需要提前加载大量的特效等数据),可以自定义协议灵活速度快缺点:因为需要安装软件所以安全性会低一些,开发工作量大b/s模型(browser-server):优点:安

2020-09-03 08:36:54 259

原创 从零开始的C嘎嘎学习随记

1.函数的引用型返回值可以作为左值2.引用作为函数的返回值时不能返回函数中局部变量如:int& xxx(...){ int a;//局部变量 不能作为引用返回 在栈区 static int b;//变量成了全局变量 在全局区 //return a;//可以接收到一次值 再次接收将会乱码 return b;//正确}3.关于const和指针const int* ptr;//指向一个整型常量 指向的整型不能变int* const ptr;//指向一个整型变量 指针不能指向别的变

2020-08-16 16:01:28 1032

原创 系统编程 笔记11

信号集操作函数:sigset_t set;;自定义一个信号集方法如左,下面是操作set的函数sigemptyset(sigset_t *set); 清空信号集 可以理解为初始化sigfillset(sigset_t *set); 信号集中全部置1sigaddset(sigset_t *set, int signum); 将一个信号添加到集合中置1sigdelset(sigset_t *set, int signum); 将一个信号从集合中移除sigismember(const sigset_t

2020-05-26 22:12:28 158

原创 系统编程 笔记10

信号共性:简单,不能携带大量信息,满足条件才发送。信号的特质:信号是软件层面上的“中断”。一旦信号产生,无论程序执行到什么位置,必须立即停止,处理信号,处理结束,再继续执行后续指令。所有信号的产生及处理都是由内核完成的。产生信号:比如按键产生比如“ctrl + c”,系统调用:kill,软件产生:比如sleep函数,硬件异常产生:比如段错误,命令:kill信号有两种状态:递达:内核发出并到达指定目标未决:产生和递达之间的状态...

2020-05-26 00:58:54 125

原创 系统编程 笔记9

兄弟进程间通信:需要注意关闭父进程的读端和写端。有名管道fifo:和匿名管道一样也是在内核空间创建一个缓冲区,但是区别在于这个管道有名。命令创建:mkfifo …函数原型:int mkfifo(const char* pathname, mode_t mode);这个管道可以让两个没有血缘关系的进程间通信。文件进程间通信:利用fork函数,父子进程之间共享文件描述符,也就共享了打开的文件。无血缘关系的进程也可以,简单来说就是两个进程访问同一个文件并往里写或读数据,也就类似于两个进程间通信了。(

2020-05-15 03:08:02 120

原创 系统编程 父子进程间管道通信实现Linux指令

1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<unistd.h> 4 #include<errno.h> 5 #include<fcntl.h> 6 int main() 7 { 8 int fd[2];//管道读写端文件描述符 9 int i;//错误接收变量 10 pid_t pid; 11 12 i = pip..

2020-05-14 22:23:40 250

原创 系统编程 笔记8

-------------------------------------进程间通信-------------------------------------

2020-05-14 00:16:01 150

原创 系统编程 笔记7

gdb调试:1.set follow-fork-mode child 命令设置gdb在fork之后跟踪子进程2.set follow-fork-mode prarent 设置跟踪父进程exec函数族:简单来说就是当程序执行了fork()(此时程序变成了父进程),默认情况下父进程有的代码子进程也有,但是如果有了exec这个函数,子进程中的所有代码会被清空,去执行你指定的一个程序,比如写了exec(a.out),那么子进程将执行的是a.out这个程序。但是子进程PID没有变,还是父进程的儿子,只是它的

2020-05-12 17:30:16 424

原创 系统编程 笔记6

进程:活的,运行起来的程序,占用内存,cpu等资源。–戏程序:死的,只占用磁盘空间 –剧本并发:在操作系统中,一个时间段中有多个进程都处于已启动运行到运行完毕之间的状态。但,任意时刻点上仍只有一个进程在运行。对于在内核空间里的进程,它们通过MMU映射到磁盘空间是在同一个区域,因为PCB本质是一个结构体,在内核中有充足的空间来同时储存多个结构体。因为这个特性才有了进程间的通讯,如果没有映射到同一个空间那就没有了进程间的通讯。ps aux查看进程信息进程状态:初始态,就绪态,运行态,挂起态,终止态其中

2020-05-10 23:24:35 144

原创 系统编程 笔记5

link unlink函数在inode之外有个目录项dentry,这并不多余,这主要是为了实现文件共享,Linux允许多个目录项共享同一个文件,link函数可以为已经存在的文件创建目录项(硬链接)int link(const char *oldpath,const char *newpath)成功返回0,失败返回-1 并errno为相应的值。int unlink(const char *path)成功返回0,失败返回负值。对于删除文件,可以说是将文件的硬链接删除完,从而让文件具备被系统释放的条件

2020-05-10 23:23:52 118

原创 系统编程 笔记4

文件大致组成如图inode:本质是一个结构体,储存文件的属性信息。如:权限,类型,大小。。。。也叫文件属性管理结构,大多数的inode储存在磁盘上。dentry(目录项):本质依然是结构体,其中重要的成员变量有两个{文件名,inode……},文件的内容是保存在磁盘中的。所以一个文件描述主要就由上面两个东西组成。stat函数:获取文件属性int stat(const *path, struct stat *buf);参数:path:文件路径buf:传出参数,存放文件属性,inode结构体指针。

2020-05-10 23:21:22 152

原创 系统编程 笔记3

fcntl函数:int fcntl(int fd, int cmd, … /* arg */ );//文件描述符 控制命令 可变参数主要看控制命令是什么获取文件状态(实质上是一个位图数据):F_GETFL设置文件状态:F_SETFLint flags = fcntl(fd,F_GETFL);flags介绍:是fcntl返回出来的一个位图数据表示了各个属性的状态,比如文件是否阻塞,是否可截断。。。。flags = fcntl(STDIN_FILENO,F_GETFL);flags |= O_NO

2020-05-10 16:04:13 97

原创 系统编程 笔记2

1.库函数和系统函数的对比(得在一定条件下,得在系统函数那个程序把buf设置成1,如果设置成4096那么两个程序的速度是一样的)使用库函数虽然看似比直接使用系统调用多了一步,但是从用户空间进入内核空间耗时巨大,在对比库函数和系统函数的copy.c中,系统函数buf被设置成1时,程序每读取一个字节就得完成一次内核空间和用户空间的跳转,而库函数(fputc函数),在函数内部有一个buf而这个buf默认是4096,也就是内核空间的缓冲向磁盘写入所需要的值(每当内核空间缓冲满4096,就向磁盘写入数据),所以可以

2020-05-10 02:51:42 203

原创 利用指针数组完成图书馆管理系统原码

函数没有分文件写 供参考#include <stdio.h>#include <stdlib.h>#include <string.h>struct Book{ char name[32]; //书名 int count; //本数 int flag; //是否可借 1表示可借};typedef struct Book book;void fugai_book(int i,int c);struct Studen

2020-05-09 22:52:17 359

原创 系统编程 笔记1

系统调用(内核提供的函数) ;open函数的真正系统调用函数 sys_open;read函数的真正系统调用函数 sys_read;所以真正open read函数严谨的来说不叫系统调用叫系统函数,sys_read sys_open是系统调用,两种基本没区别,就是换了一个壳;内核里头主要是驱动最后会对应到硬件的各个部件 ;如:printf(“hello”);需要打印到显示屏上需要通过系统调用进入内核,再通过内核的各个驱动(显卡驱动),将hello打印到公屏;1.open函数:头文件:#include

2020-05-09 22:27:52 179 1

原创 究极入门级链表创建以及详细注释

造福社会篇!这篇代码文适合超级小白我会结合我小白时期的困惑来解说下面的代码,所以我会讲的很详细,如果看完有问题就评论区!一定回答! 1 #include<stdio.h> 2 #include<stdlib.h>//申请空间所需要的库,没有这个会报警告 3 struct stu//首相要知道的是链表全是结构链在一起的,这个结构定义在main外 4 { ...

2020-02-18 11:37:51 443

原创 关于找到字符串帧头帧尾并输出帧头到帧尾之间所有的字符c语言代码

以下是解决问题的代码,并且有了详细注释,希望对你有所帮助。欢迎在评论区一起讨论 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 char *find(char *str,char *flag) //此函数形参分别接受被寻找字符串的首地址和帧头或帧尾字符串首地址 ...

2019-11-13 11:14:55 1224 1

原创 关于快速解决LINUX .vmx文件找不到而打不开客户机的方法

此文章适用的问题现象为:打开虚拟机后,选中需要打开的客户机,系统却提示你找不到.vmx文件,但是你却能在目标文件夹中找到.vmx文件。ps:如果你不知道.vmx文件在哪,你可以右键客户机,找到最下面的“设置”选项,会有一个弹窗,点击这个弹窗左上角的选项,你就可以看到这个客户机的工作目录,.vmx文件就在那个工作目录下。解决办法:首先右击你需要打开的客户机,找到“移除”选项(这里需要说明的是移除...

2019-10-27 22:01:14 2544

原创 Linux究极入门级Terminal指令

通过本文你将可以快速掌握基本的linux操作并且可以在linux上进行代码编写在进入linux操作系统后,首先你需要做的就是打开终端,在键盘上同时按下“ctrl + t”来实现打开终端的操作,弹出窗口后输入“ls”。这是我们需要知道的第一个指令及其常用选项:指令(ls)指令含义ls这是“list”的缩写,作用是列出当前目录的文件ls -a列出当前目录下的所有文件...

2019-10-27 21:23:08 526

C语言链表—手机通讯录.zip

所有函数分文件夹编写,并且包含Makefile,代码功能包括:1.联系人添加,联系人信息包括姓名,电话,住址以及自动生成的ID号 2.通过姓名或电话号码查找联系人 3.查看所有联系人并且按照首字母排序 4.修改联系人信息 5.删除联系人

2020-05-12

空空如也

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

TA关注的人

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