
Linus
文章平均质量分 75
您813
这个作者很懒,什么都没留下…
展开
-
二十、FTP云盘
【代码】二十、FTP云盘。原创 2025-04-17 22:10:46 · 236 阅读 · 0 评论 -
二十一、linus下的sqlite编程
创建一张数据库的表stucreate table stu(id Integer,name char,score。官网下载sqlite3,然后本地安装:sudo dpkg -i *.deb。基本的sql命令,不以 . 开头,但是都要;.databases 查看打开的数据库。3.将新的表的名字改成原有的表名字。.schema查看表结构。查询数据库部分内容字段。2、sqlite编程接口。原创 2025-04-17 15:39:57 · 261 阅读 · 0 评论 -
十九、UDP编程和IO多路复用
【代码】十九、UDP编程和IO多路复用。原创 2025-04-12 21:22:37 · 381 阅读 · 0 评论 -
十八、TCP多线程、多进程并发服务器
1、TCP多线程并发服务器。1、TCP多线程并发服务器。原创 2025-04-12 20:18:44 · 492 阅读 · 0 评论 -
十七、TCP编程
函数是网络编程中用于将套接字(socket)与特定的IP地址和端口绑定的关键步骤,常用于服务端设置监听地址。提取连接:从监听套接字的已完成连接队列(已完成三次握手)中取出一个客户端连接。生成新套接字:返回的已连接套接字与客户端一一对应,原监听套接字继续接受其他连接。成功:返回一个新的已连接套接字描述符(非负整数),专门用于与客户端通信。成功:返回一个非负整数(套接字文件描述符),后续操作(如。,套接字进入已连接状态(TCP)或设置默认地址(UDP)。原创 2025-04-12 20:08:37 · 868 阅读 · 0 评论 -
十六、Linus网络编程基础
1、Linux 网络的历史发展1、Linux 网络的历史发展早期阶段(1991–1995)1991年:Linus Torvalds 发布 Linux 内核的初始版本(0.01),此时内核不支持网络功能,仅是一个单机操作系统。1992年:受 BSD 套接字(BSD Sockets)启发,Linux 开始集成网络子系统,目标是兼容 TCP/IP 协议栈。首个网络实现由开发者 Ross Biro 贡献,但功能有限。原创 2025-04-12 17:42:26 · 775 阅读 · 0 评论 -
十六、条件变量和信号量
互斥量:保护一块共享数据。当条件满足,通知阻塞的线程开始工作。将已经上锁的mutex解锁。该函数解除阻塞,对互斥锁加锁。唤醒至少一个阻塞在条件变量上的线程。使用条件变量实现生产者,消费者模型。唤醒全部阻塞在条件变量上的线程。使用条件变量+互斥量。条件不满足,阻塞线程。阻塞等待一个条件变量。限时等待一个条件变量。加锁失败,不阻塞,直接发牛。不是什么时候都能阻塞线程。,但是条件变量能够阻塞线程。conditon 条件。原创 2025-04-07 21:20:06 · 909 阅读 · 0 评论 -
十五、互斥锁、原子操作、死锁和读写锁
/阻塞 --mutex = 0。如何解决: 让线程按照一定的顺序去访问共享资源-在访问其他锁的时候,需要先将自己的锁解开 --try_lock。线程A加读锁成功,又来了B线程加写锁阻塞,又来了C线程加读锁阻塞。线程A加读锁成功,又来了三个线程,做读操作,可以加锁成功。线程A加写锁成功,又来了三个线程,做读操作,三个线程阻塞。线程A持有读锁,然后线程B请求写锁,然后线程C请求读锁。线程1访问共享资源B,对B锁加锁-线程1阻塞在B锁上。线程A持有写锁,然后线程B请求读锁,然后线程C请求写锁。原创 2025-04-07 20:40:33 · 678 阅读 · 0 评论 -
十二、信号
信号的接收(接收信号进程) : pause()、 sleep、 while(1)信号的发送(发送信号进程):kill、raise、alarm。:通知进程异步事件(如用户输入、硬件异常、其他进程请求等)。信号的处理(接收信号进程) :signal。优先级高于普通进程执行,会中断当前操作。轻量级,仅传递信号编号(无数据内容)。子进程状态变化(终止/暂停)终端断开或控制进程结束。不可被捕获、阻塞或忽略。内存非法访问(段错误)原创 2025-03-26 21:45:20 · 212 阅读 · 0 评论 -
十一、共享内存
的IPC机制,但需配合同步机制(如信号量)避免竞态条件。共享内存允许多个进程访问同一块物理内存区域,是。1.共享内存(Shared Memory)1.共享内存(Shared Memory):数据直接在内存中读写,无需内核中转。:适合高频数据交换(如视频流处理)。:随进程分离或显式删除而释放。:需开发者自行实现锁或信号量。:直接操作内存指针。原创 2025-03-26 20:43:00 · 936 阅读 · 0 评论 -
十、消息队列
消息按先进先出(FIFO)顺序处理,支持优先级设置。消息队列是内核维护的通信机制,允许进程通过发送和接收。:保留消息的独立性,接收方按消息单位读取。:消息队列在进程结束后仍存在,需显式删除。:发送者与接收者无需同时运行。原创 2025-03-26 20:23:57 · 261 阅读 · 0 评论 -
九、进程间的通信、有名管道和无名管道
无数据:写端被全部关闭,read返回0,相当于读文件到了尾部。没有全部关闭,read阻塞。读端全部关闭:管道破裂,进程被终止。读端没全部关闭:缓冲区写满了,write阻塞。缓冲区没满,write继续写,直到写满,阻塞。有数据:read(fd[1]) 正常读,返回读出的字节数。默认读写两端都阻塞,设置读端为非阻塞pipe(fd)。参数:管道文件文件名,权限,创建的文件权限仍然和umask有关系。3、父子进程通过关闭不需要的文件描述符,确定通信方向。读端,写端,对应两个文件描述符。复制文件描述符-dup。原创 2025-03-26 18:54:06 · 534 阅读 · 0 评论 -
七、进程中常用的指令函数族以及数据共享
1.ps和kill指令1.ps和kill指令查看进程信息部分参数:a : 显示现行终端机下的所有程序,包括其他用户的程序u: 以用户为主的格式来显示程序状况x: 显示所有程序,不以终端机来区分ajx向指定的进程发送信号kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。参数:-a:当处理当前进程时,不限制命令名和进程号的对应关系;原创 2025-03-18 15:16:09 · 477 阅读 · 0 评论 -
八、孤儿进程、僵尸进程、进程回收、vfork和进程退出
对于三个终止函数(exit, _exit和 _ Exit),实现这一点的方法是,将其退出状态(exit status)作为参数传送给函数,在异常终止情况下,内核(不是进程本身)产生一个指示其异常终止原因的终止状态(termination status)。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。一个比较特殊的状态,当进程退出父进程(使用wait()系统调用)没有读取到子进程退出的返回代码时就会产生僵尸进程。1.孤儿进程和僵尸进程。1.孤儿进程和僵尸进程。原创 2025-03-18 17:32:55 · 234 阅读 · 0 评论 -
四、文件IO、标准IO、fopen、fclose、fwrite以及fread函数
fwrite()──从buffer开始,一次输出size个字节,重复count次,并将输出的数据存放到fp所指向的文件 中。需要注意的是该函数不是重定位文件指针,而是重定位文件内部的指针,让指向文件内部数据的指针移到文件中我 们感兴趣的数据上,重定位主要是这个目的。把fp指针移动到离文件当前位置100字节处;at+:打开文本文件,可读写,写的数据加在文本末尾 ab+:打开二进制文件,可读写,写的数据加在文件末尾。a+:附加方式打开可读写,不存在建立该文件,存在写入的数据加到文件尾,EOF符不保留。原创 2025-03-12 21:31:24 · 595 阅读 · 0 评论 -
三、Write、Read、lseek函数、main函数以及cp指令的实现
实际上,主函数的参数值是从操作系统命令行上获得的。argc: 参数表示命令行中参数的个数(注意文本名本身也是一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。C语言规定了主函数的参数只能有两个,一个是argc,一个是argv,并且,argc只能是整数,第二个必须是指向字符串的指针数组。但是应该特别注意的是,main的两个形参和命令行中的参数在位置上不是一一对应的。write()会把参数buf所指的内存写入count个字节到参数fd所指的文件内。*buf: 写入的数据的首地址。原创 2025-03-10 20:02:14 · 518 阅读 · 0 评论 -
一、Linus目录与文件操作
其次Linux命令操作的目的 Windows采用的命令:DOS命令 Linux采用的命令:Shell命令 问:我们首先需要搞清楚,采用这些命令,我们要做什么?yx:复制若干行,x代表行数,输入2,就是复制当前行和它下面的两行(总共三行), 复制的 位置由光标所在位置决定。2.文本输入模式:按i进入 进入文本输入模式,即可编辑代码,注意只能键盘操作, 鼠标不行。vi和vim的区别:vim是vi的升级版,基础功能两者一致,不过在嵌入式开发板中。vi是一种方便的代码编辑器,Linux系统一般是自带的。原创 2025-03-07 15:11:38 · 245 阅读 · 0 评论