- 博客(50)
- 收藏
- 关注
原创 python中的*args和**args
python中的*args和**args:*args 用于向函数传递不定数量的非关键字参数,这些参数会被封装成一个元组;**kwargs 用于向函数传递不定数量的关键字参数,这些参数会被封装成一个字典。
2025-04-08 22:09:46
272
原创 VScode添加python解释器
VScode添加python解释器 先安装python扩展然后点ctrl+shift+p搜索python:select,选择解析器(或者也可以直接点左下方的)
2025-04-08 19:59:50
188
原创 c语言中的可变参数 add(2, 100, 200)
c语言中的可变参数 add(2, 100, 200) var_start var_arg va_end
2025-02-23 09:34:12
114
原创 fread fwrite feof ferror用法
fread fwrite feof ferror用法 feof函数作用:当文件读取结束时,判断文件读取结束的原因是否是:遇到了文件结束结束标志ferror函数作用:在文件读取结束时,检查是否是因为遇到了文件错误标志。
2025-02-23 09:00:35
342
原创 标准IO缓冲区
行缓存(与终端相关 stdin stdout)1024 1K;全缓存(与文件相关的缓冲区 fp)4096 4K;无缓存(标准出错无缓存)stderr
2025-02-22 10:35:46
258
原创 vscode代码补全 main
vscode代码补全设置->配置用户代码片段->c(c.json)->填写如下信息 PS: new+回车 自动补全
2025-02-22 09:45:02
430
原创 Ubuntu vi(vim)编辑器配置一键补全main函数
Ubuntu vi(vim)编辑器配置一键补全main函数.1.打开对应的配置文件 vi ~/.vim/snippets/c.snippets2.按G将光标定位到文件末尾3.按i进入插入模式 以tab键开头插入下的内容,空行也要加 tab键;4.:wq保存退出;5.再打开任意一个新的 .c文件后,插入模式输入 main 然后按tal键就能补全了
2024-12-22 19:22:45
784
3
原创 sqlite3数据库常用的API接口及其错误码解释
sqlite3数据库常用的API接口 sqlite3_open sqlite3_errmsg sqlite3_close sqlite3_exec
2024-07-06 20:05:07
450
原创 基于TCP的在线词典系统(分阶段实现)(阻塞io和多路io复用(select)实现)
一共四个功能:注册登录查询单词查询历史记录单词和解释保存在文件中,单词和解释只占一行,一行最多300个字节,单词和解释之间至少有一个空格。
2024-07-06 20:01:16
785
原创 基于UDP的网络聊天室(多线程实现收和发消息)
2.有用户群聊,其他在线的用户可以收到群聊信息。3.有用户退出,其他在线的用户可以收到退出信息。要求:1.有新用户登录,其他在线的用户可以收到登录信息。4.服务器可以发送系统信息。
2024-06-26 21:31:53
380
3
原创 IPC进程间通信
(内部进程通信Internal process communication 一般问指的是System V版本的以下三个)4.消息队列5.共享内存6.信号灯集合ipcs查看IPC进程间通信ipcs -q //查看消息队列ipcs -m //查看共享内存ipcs -m //查看信号灯集。
2024-06-24 16:27:08
420
原创 Linux 7种 进程间通信方式
通过文件实现进程间通信 必须人为保证先后顺序 A--->硬盘---> B(B不知道A什么时候把内容传到硬盘中)1.无名管道2.有名管道3.信号4.消息队列5.共享内存6.信号灯集原理:如果A和B进程想要通过无名管道通信,那就,A进程向管道的一端写数据,B进程可以从管道的另外一端读数据。在A进程和B进程进行数据传输的时候是的。无名管道是的通信方式。如果A进程一直向管道中写数据写满64K的时候A进程阻塞,直到B进程读一部分数据之后A才能继续写。
2024-06-23 21:57:47
1055
原创 Linux 多线程常用的API:pthread_self、pthread_exit、pthread_join、pthread_detach和pthread_cancel
Linux 多线程常用的API:pthread_self、pthread_exit、pthread_join、pthread_detach和pthread_cancel及其实例代码演示
2024-06-22 16:45:34
396
原创 线程简介及其函数使用实例(gcc *.c -lpthread)
线程概念、线程接口提供方式、线程创建使用到的函数、多线程创建实例 、多线程创建实例 、多线程执行顺序问题和多线程占用内存问题
2024-06-20 19:38:00
579
原创 exit和_exit函数和atexit函数
相对于return函数,exit和_exit是用于专门退出进程的函数,而return不是用于专门退出进程的,只是执行mian函数时,return可以退出进程。(return退出当前函数执行的栈空间,并返回当前函数执行的结果)exit实例 刷新缓冲区 输出1 2。_exit实例 输出 1。
2024-06-16 21:33:17
273
原创 多进程拷贝文件
光标问题:如果在fork前拷贝文件,父子进程共用光标,如果想父子进程不共用光标,父子进程各自使用各自的fd即可。使用两个进程拷贝文件,父进程拷贝前一半,子进程拷贝后一半。lseek光标定位函数。
2024-06-14 20:56:01
312
原创 进程状态及其转换
在linux系统启动的时候最先运行的进程就是0号进程,0号进程又叫空闲进程。如果系统上没有其他进程执行那么0号进程就执行。0号进程是1号进程和2号进程的父进程:init进程是由0号进程创建得到的,它的主要工作是系统的初始化。当初始化工作执行完之后,它主要负责回收孤儿进程(子进程没结束,父进程先没了 此时该子进程就是孤儿进程)的资源。(PS:僵尸进程:子进程死掉了 父进程还存在 但没有给它回收 ,此时死掉的子进程就变成了僵尸进程 僵尸态)
2024-06-14 16:10:26
929
原创 非阻塞IO简介和代码实例
recv和recvfrom的MSG_DONTWAIT O_NONBLOCK。以读操作为例,当进程执行读操作的时候,如果缓冲区内有内容,则读取内容继续执行。但对于大部分的函数并没有非阻塞标志位,可以使用fcntl函数设置非阻塞标志位。如果缓冲区没有内容,则立即返回一个错误,而非让进程进入休眠状态。eg: waitpid的WHOHANG。有些函数本身自带非阻塞标志位。
2024-06-13 15:09:43
310
原创 阻塞IO简介和代码示例
当进程执行读操作的时候,如果缓冲区有内容,则继续读取内容向下执行。缓冲区没内容,进程进入休眠态,直到缓冲区中再次有内容,由内核唤醒进程,读取缓冲区的内容,然后继续向下执行。:如果管道写满了,进程阻塞,等待有足够的空间容纳本次的写操作了,写操作继续执行,但大多数情况下,我们只关心读阻塞的问题。缺省情况下,套接字建立后的模式就是阻塞I/O模式。IO模型,大部分程序使用的都为阻塞IO模型。
2024-06-11 20:16:05
294
原创 TCP三次握手和四次挥手过程简介(抓包分析,简单易懂,小白)
链路层、网络层、传输层和应用层协议详解分析-CSDN博客wireshark抓包分析-CSDN博客wireshark是网络包分析工具网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。wireshark应用举例:网络管理员用来解决网络问题网络安全工程师用来检查安全隐患开发人员用来测试协议的执行情况学习网络协议。
2024-06-11 10:47:33
1052
原创 链路层、网络层、传输层和应用层协议详解分析
wireshark抓包分析-CSDN博客wireshark是网络包分析工具网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。wireshark应用举例:网络管理员用来解决网络问题网络安全工程师用来检查安全隐患开发人员用来测试协议的执行情况学习网络协议。
2024-06-07 20:43:18
1226
原创 wireshark抓包分析
wireshark是网络包分析工具网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。wireshark应用举例:网络管理员用来解决网络问题网络安全工程师用来检查安全隐患开发人员用来测试协议的执行情况学习网络协议。
2024-06-06 09:48:22
461
原创 使用TCP客户端下载TCP服务器所在目录下的文件的功能(TCP实现文件传输和下载)
ubuntu 网络编程 使用TCP实现文件下载功能 客户端和服务器TCP实现文件传输和下载端()
2024-06-02 21:00:21
391
1
原创 YOLOv5 Detect.py 改变检测框box线条的粗细,隐藏检测框的检测信息,只显示检测框box
YOLOv5 Detect.py 改变检测框box线条的粗细,隐藏检测框的检测信息,只显示检测框box
2024-03-10 11:29:33
871
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人