![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 86
江玖_
不一定一直在线
可以摸摸我养的猫哦
__
/> フ
/` ミ_xノ
/ |
/ ヽ ノ
│ | | |
/ ̄| | | |
| ( ̄ヽ__ヽ_)__)
\二つ
展开
-
Linux C 基于tcp和epoll在线聊天室
服务端:实现了验证用户是否已经存在(支持最大64用户连接)支持广播用户进入退出聊天室以及用户聊天内容。这里只提供里服务端代码,如果想要看客户端代码。原创 2023-11-22 20:21:02 · 728 阅读 · 0 评论 -
Linux C IO复用
什么是IO复用呢?I/O复用(I/O multiplexing),指的是通过一个支持同时感知多个描述符的函数系统调用,阻塞在这个系统调用上,等待某一个或者几个描述符准备就绪,就返回可读条件。IO多路复用解决了什么问题呢?当多个客户端与服务器通信时,若服务器阻塞在其中一个客户的read(sockfd1,…),当另一个客户数据到达sockfd2时,服务器无法及时处理,此时需要用到IO多路复用。原创 2023-11-22 20:14:14 · 431 阅读 · 0 评论 -
Linux C 基于tcp多线程在线聊天室
客户端实现了判单用户登录结果、防止单回车字符发送、保存和显示历史聊天记录(仅自己)、退出聊天室功能。服务端实现了验证用户是否已经存在(支持最大64用户连接)支持广播用户进入退出聊天室以及用户聊天内容。原创 2023-11-20 19:40:04 · 400 阅读 · 0 评论 -
Linux C 网络编程概述
计算机网络是指将不同地理位置,具有独立功能的多台计算机及网络设备通过通信线路(包括传输介质和网络设备连接起来),在网络操作系统、网络管理软件及网络通信协议的共同管理和协调下实现资源共享和信息传递的计算机系统。网络地址转换(NAT)是一种用于访问 Internet 访问模式广域网(WAN)的技术,用于将私有(保留)地址转换为合法 IP 地址。NAT 不仅能够有效地额抵抗外部网络攻击(防火墙:外来连接),还能够在 IP 地址分配不理想,不足的时候有效,合理化的分配 IP 地址,从而能够进行互联网访问。原创 2023-11-20 19:30:43 · 325 阅读 · 0 评论 -
Linux C 线程间同步机制
同进程内的所有线程共同使用进程的内存空间,并且线程可以在直接应用层完成,因此线程和线程之间的通信使用“全局变量”即可完成通信。但是由于 Linux 系统没有数据保护方式,所在在线程通信的时候需要进行数据的“同步保护”。在同进程中的多个线程都要操作的数据进行保护时,只允许一个线程操作要保护的内容。Linux 系统使用“信号量”、“互斥锁”以及“条件变量”来实现数据同步保护。实现数据保护的流程为:①创建一种使用的保护机制(信号量、互斥锁或条件变量)。原创 2023-11-16 20:17:11 · 257 阅读 · 0 评论 -
Linux C 线程
线程(英语:thread)是操作系统能够进行运算调度的最小单位(程序执行流的最小单元)。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。原创 2023-11-16 19:48:21 · 329 阅读 · 0 评论 -
基于消息队列+多进程编写的银行模拟系统
该案例大体过程为,服务器先启动,初始化消息队列和信号,用多线程技术启动开户、存钱、转账、取钱模块,并且可以控制结束。客户端启动后会自动链接服务器,会将用户的请求发送到请求队列,从响应消息队列读取处理结果,并提示给用户。其他模块轮询检测请求消息队列中是否有自己应该去做事情的消息,如果读取到就开始任务,并且将任务结果发送到响应消息队列。目前用户信息存取是通过txt文件实现的,每个用户单独一个文件。原创 2023-11-15 19:51:27 · 79 阅读 · 0 评论 -
Linux C 进程间通信
为什么进程间需要通信?为了传输数据、共享资源、通知事件、控制进程等。那么进程间通信的原理是什么呢?进程在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信机制。无名管道只能用于父子进程或兄弟进程之间的通信,而有名管道可用于任意两进程之间通信。在Linux中使用 kill -l 命令可以查看到x 系统中有下 62 个信号,每一个信号都有自己独特的含义。原创 2023-11-15 19:15:16 · 537 阅读 · 0 评论 -
Linux C 进程编程
官方的来说,进程是程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位。通俗的讲,进程就是在程序编译之后,运行起来的二进制文件。原创 2023-11-13 20:57:01 · 484 阅读 · 0 评论 -
Linux 之 MakeFile
初学者在Linux中编写代码的时候,都会了解到需要使用 gcc 1.c -o app 把 .c源文件 变成可执行文件。但是如果是一个由上百个.c文件构成的项目,我们还得一个个去变成可执行文件么?因此工程管理器应运而生。工程管理器是一个能够管理较多的文件,并且能根据文件时间自动检测出更新过的文件而减少编译的工作量,同时通过读入 Makefile 文件来执行大量的编译工作。Makefile是一种用于自动化构建和编译软件项目的工具。它通常用于管理大型项目中的源代码文件,以及定义项目的编译、链接和其他构建过程。原创 2023-11-13 00:16:19 · 891 阅读 · 0 评论 -
Linux C 时间编程
3)date -s “20231111 11:11:11”:修改系统时间为2023年11月11日11点11分11秒。返回值:返回一个指向字符串的指针,它代表了结构 struct timeptr 的日期和时间。返回值:该函数返回指向 tm 结构的指针,该结构带有被填充的时间信息。返回值:该函数返回指向 tm 结构的指针,该结构带有被填充的时间信息。timep:指向表示日历时间的 time_t 值的指针。指向表示日历时间的 time_t 值的指针。timeptr:指向 tm 结构的指针。原创 2023-11-11 15:39:54 · 142 阅读 · 0 评论 -
Linux C 目录编程
相较于文件编程,目录编程也有一套自己的函数,可以进行创建、打开、读取等目录操作。在日常中使用较多的是遍历目录,比如音乐播放器检测本地音乐、视频播放器打开指定目录下的视频等等。原创 2023-11-11 11:46:37 · 732 阅读 · 0 评论 -
文件IO编程
文件 IO 是不带缓存的 IO。每个 read,write 都调用内核中的一个系统调用。也就是一般所说的低级 I/O——操作系统提供的基本 IO 服务,与 os 绑定,特定于*nix 平台。文件 IO 在 windows 是无法运行的。原创 2023-11-10 16:47:53 · 57 阅读 · 0 评论 -
标准IO编程
标准IO(标准输入输出)是指在程序中使用的输入输出函数库,它提供了一套标准的文件操作函数,如打开文件、读写文件、关闭文件等。这些函数库包括了stdio.h、stdlib.h等头文件中的函数,如fopen、fclose、fread、fwrite等。标准IO还包括了对标准输入stdin、标准输出stdout、标准错误输出stderr的操作。标准 IO 库处理很多细节。例如缓存分配,以优化长度执行 IO 等。原创 2023-11-10 16:01:03 · 179 阅读 · 0 评论 -
Linux命令基础介绍
命令行格式命令行输入格式帮助命令Shell中的特殊字符Shell命令Vim命令文件打开方式vim命令行模式vim插入模式vim底行模式vim可视模式。原创 2023-11-07 20:31:28 · 76 阅读 · 0 评论 -
Linux介绍
说到操作系统大家第一时间想到的是windows和macos,可能是这两大操作系统占据了主流市场。但是作为IT相关人员,我们还应该想到Linux。在70年代,Unix体系的源程序大多可以任意流传。那段时间,人们在创作自己的"程序作品"的同时享受着从事科学探索、创新活动所特有的那种激情和成就感。程序员们如同作家一样,急于"发表"自己的程序作品,并不专注于保守"机密"。1979年,AT&T(美国电报电话公司)宣布了Unix的商业化计划,随之出现了各种二进制的商业Unix版本。原创 2023-11-06 20:36:58 · 38 阅读 · 0 评论