- 博客(60)
- 收藏
- 关注
原创 C++ day02(函数、类和对象、封装、构造函数、析构函数)
1.属性 property(成员变量 member value 或数据成员)在类中存在的变量,用于存储数据,通常是一个名词,例如身高、价格、体重......2.行为 (成员函数可以执行的功能,是类中的函数,通常是一个动词或动词词组,例如吃饭、玩游戏、关闭、运行.....成员 = 成员变量 + 成员函数例:定义一个手机类/*** 手机类*/class MobilePhone // 帕斯卡(大驼峰)命名法:所有单词首字母大写public: // 表示访问不受限// 品牌// 型号。
2024-09-28 20:27:42
798
原创 网络编程day01(IP地址、Socket、端口号)
(1)socket 是一个编程接口(2)是一种特殊的文件描述符 (everything in Unix is a file)(3)socket是一种通信机制,并不仅限于TCP/IP协议(4)面向连接 (Transmission Control Protocol - TCP/IP)(5)无连接 (User Datagram Protocol -UDP 和 Inter-network Packet Exchange - IPX)
2024-09-04 20:58:21
3009
1
原创 IO进程day07(信号灯集、消息队列)
信号灯(semaphore),也叫信号量,信号灯集是一个信号灯的集合。它是不同进程间或一个给定进程内部不同线程间同步的机制;而Posix信号灯指的是单个计数信号灯:无名信号灯、有名信号灯。(咱们学的是无名信号灯)System V的信号灯是一个或者多个信号灯的一个集合。其中的每一个都是单独的计数信号灯。通过信号灯集实现共享内存的同步操作。
2024-09-02 21:56:00
1386
原创 IO练习:用信号实现司机和售票员问题
1)售票员捕捉SIGINT(代表开车)信号,向司机发送SIGUSR1信号,司机打印(let's gogogo)2)售票员捕捉SIGQUIT(代表停车)信号,向司机发送SIGUSR2信号,司机打印(stop the bus)3)司机捕捉SIGTSTP(代表到达终点站)信号,向售票员发送SIGUSR1信号,售票员打印(please get off the bus)4)司机等待售票员下车,之后司机再下车。
2024-08-31 09:57:54
549
原创 IO进程练习:请在linux 利用c语言编程实现两个线程按照顺序依次输出”ABABABAB......“
例如:a线程输出”A”之后b线程输出”B”,然后a线程输出“A”,再b线程输出”B”,之后往复循环。
2024-08-31 09:24:46
831
原创 IO进程day06(进程间通信、信号、共享内存)
(3)只有在管道的读端存在时,向管道中写入数据才有意义,否则,会导致管道破裂,向管道中写入数据的进程将收到内核传来的SIGPIPE信号(通常Broken pipe错误)系统默认对SIGALRM(闹钟到点后内核发送的信号)信号的响应: 如果不对SIGALRM信号进行捕捉或采取措施,默认情况下,闹钟响铃时刻会退出进程。(2)信号可以直接进行用户空间进程和内核进程之间的交互,内核进程也可以利用它来通知用户空间进程发生了哪些系统事件。(2)为了在多个进程间交换信息,内核专门留出了一块内存区,可以由需要访问的进程。
2024-08-30 21:12:04
3160
原创 IO进程day05(线程、同步、互斥、条件变量、进程间通信IPC)
线程是一个轻量级的进程为了提高系统的性能引入线程。线程和进程是参与统一的调度。在同一个进程中可以创建的多个线程, 共享进程资源。(Linux里同样用task_struct来描述一个线程条件变量(cond)用于在线程之间传递信号,以便某些进程可以等待某些条件发生。当某些条件发生时,条件变量会发出信号,使等待该条件的线程可以恢复执行。条件变量是用来等待线程而不是上锁的,条件变量通常和互斥锁一起使用。
2024-08-29 21:10:07
2041
原创 IO进程day04(进程)
程序:编译好的可执行文件存放在磁盘上的指令和数据的有序集合(文件)程序是静态的,没有任何执行的概念进程:一个独立的可调度的任务执行一个程序分配资源的总称进程是程序执行的一次过程进程是动态的,包括创建、调度、执行、消亡(1)守护进程是一个生存周期较长的进程,通常独立于控制终端并且周期性的执行某种任务或者等待处理某些待发生的事件(2)大多数服务都是通过守护进程实现的(3)关闭终端,相应的进程都会被关闭,而守护进程却能够突破这种限制今天的分享就到这里结束啦,如果有哪里写的不好的地方,请指正。
2024-08-28 20:58:29
1611
原创 IO进程day03(获取文件属性、目录操作、库Lib)
当使用别人的函数时除了包含头文件以外还需要有库文件。头文件:函数声明、结构体等类型定义、头文件、宏定义、其他头文件等库把一些常用的函数的目标文件打包在一起,提供相应的函数接口,便于程序员使用。本质上来说库是一种可执行代码的二进制形式文件。由于windows和linux的本质不同,因此而这库的二进制是不兼容的。(Linux中的C运行库是glibc, 由GUN发布。静态库:编译阶段,体积大,移植性好,升级麻烦,以.a 结尾动态库:运行阶段加载代码,体积小,移植性差,升级简单,以.so 结尾。
2024-08-27 20:15:18
1108
原创 IO进程day02(文件IO)
又称系统IO,是系统调用,是操作系统提供的接口函数。posix中定义的一组用于输入输出的函数。POSIX接口 (英语:Portable Operating System Interface)可移植操作系统接口。
2024-08-26 21:09:14
1336
1
原创 IO进程练习---往文件中录入当前时间
编程读写一个文件test.txt,每隔1秒向文件中写入一行录入时间的数据,类似这样:该程序应该无限循环,直到按Ctrl-C中断程序。再次启动程序写文件时可以追加到原文件之后,并且序号能够接续上次的序号,比如:思路:打开文件fopen,循环往文件写内容每隔1s写入一行,sleep(1);计算文件行数,wc -l计算当前时间,转换成年月日、时分秒,timelocaltimefprintfman 2 time如果tloc是空指针,直接返回当前时间。
2024-08-25 13:56:37
506
原创 IO进程day01(标准IO 函数接口)
关于缓存区: 库函数的缓冲区对于库函数,如果标准输出连到终端设备(直接输出到屏幕),则它是行缓冲的(遇到回车换行符或者是缓冲区满了才输出);因为读写文件通常是大量的数据(相对于底层驱动的系统调用所实现的数据操作单位),这时,使用库函数可以大大减少系统调用的次数。的方式打开文件时,写只能在末尾进行追加,定位操作是无法改变写的位置,但是可以改变读的位置。: ptr :是一个指针,是存放数据的存储空间的起始地址,用来存放读取元素。今天的分享就到这里结束啦,如果有哪里写的不好的地方,请指正。
2024-08-24 21:26:37
1347
原创 IO进程day01(标准IO、缓存区)
但通过缓冲机制,就可以在第一次进入硬盘的时候,在硬盘中拿取一个缓冲区大小的数据(可能大于要读取数据,有可能小于要读取数据),放入缓存区中,从缓存区中读取此次数据,而且剩下的1023次也都可以直接在缓存区中读取数据,相较之前,效率大大提高。:当我们每次要在终端打印数据时,并不是将数据直接发送给标准输出设备,也就是并直接发送给显示器,而是将要打印的数据先存放到。perror:标准错误 会直接打印,printf :缓存区未满不会打印。今天的分享就到这里结束啦,如果有哪里写的不好的地方,请指正。
2024-08-23 20:49:51
876
1
原创 数据结构(双向链表)代码详细注释
也叫,与单向链表不同的是,每一个节点有三个区域组成:两个指针域,一个数据域。:存储前驱节点的内存地址:存储后继节点的内存地址:存储节点数据单个双向链表节点:完整的双向链表。
2024-08-23 19:43:03
530
原创 数据结构day05(二叉树)
二叉树(Binary Tree)是n(n≥0)个节点的有限集合,它或者是空集(n=0), 或者是由一个根节点以及两棵互不相交的、分别称为左子树和右子树的二叉树组成。二叉树与普通有序树不同,二叉树严格区分左孩子和右孩子,即使只有一个子节点也要区分左右。5》二叉树性质(重点)(1)二叉树第k(k>=1)层上的节点最多为2的k-1次幂 // 2^(k-1)(2)深度为k(k>=1)的二叉树最多有2的k次幂-1个节点。//满二叉树的时候做多的节点数 2^k-1(3)在任意一棵二叉树中,树叶。
2024-08-22 21:04:04
801
原创 数据结构day04(队列 Queue 循环队列、链式队列)
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。队头(Front):允许删除的一端,又称队首。队尾(Rear):允许插入的一端。空队列:不包含任何元素的空表。队列包括顺序队列(循环队列)、链式队列。结构先进先出FIFO操作:创建、入列、出列、判空和判满。
2024-08-21 21:50:28
2036
3
原创 数据结构day03(栈 Stack 顺序栈、链式栈 )内含具体详细代码实现
是只允许在一端进行插入或删除的线性表,首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。线性表允许进行插入删除的一端固定的,不允许进行插入和删除的另一端不含任何元素的空表栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。
2024-08-21 21:04:01
484
原创 数据结构day01(数据结构、算法基础知识)
数据结构就是数据的逻辑结构存储结构以及操作(类似数据的运算)数据结构的最终目的就是:如何更高效的存储数据算法对特定问题求解步骤的一种描述,它是指令的有限序列,期中每一条指令都表示一个或多个操作。数据结构 + 算法 = 程序。
2024-08-20 08:50:18
1130
原创 数据结构day02(链表)
链表又称单链表/链式存储结构,用于存储逻辑关系为“一对一”的数据和顺序表不同,使用链表存储数据,不强制要求在内存中集中存储,各个元素可以分散存储在内存中。所以在链表中,每个数据元素可以配有一个指针用于找到下一个元素即节点,这意味着,链表上的每个“元素”都如下图逻辑结构:线性结构存储结构:链式存储特点:内存不连续,需要通过指针链接,大小不固定,解决顺序表插入删除麻烦的问题操作:增删查改。
2024-08-16 22:01:54
552
原创 LinuxC高级day05(函数指针、条件编译)
数据类型 (*指针名) (参数列表);函数名 : 函数首地址int add(int a, int b) //add函数名:函数的地址int sub(int a, int b) //sub类型: int (*) (int,int)//定义了函数指针p = add;//让函数指针p指向add函数//通过函数名直接调用函数//通过函数指针间接调用所指的函数p = sub;//通过函数名直接调用函数//通过函数指针间接调用所指的函数return 0;#define 宏名。
2024-08-13 20:15:48
421
原创 LinuxC高级day04(gcc、gdb、makefile工具)
自定义变量预定义变量 自动变量可以用%.c和%.o代替每一个.c和.o文件: 相当于让每个.c生成各自的.o make指令
2024-08-12 21:23:35
705
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人