Linux系统编程
文章平均质量分 90
行稳方能走远
日日行,不怕千万里;常常做,不怕千万事
展开
-
linux C 线程池
linux C 线程池原创 2023-12-29 15:52:07 · 788 阅读 · 0 评论 -
线程同步(互斥锁、条件、读写锁、信号量)
一、引入二、互斥量与临界区(Critical Section)三、读写锁四、条件变量五、信号量六、小结一、引入当我们有多个线程一起工作时,就要注意一些问题,就好像小组合作的时候要注意组员之间的关系一样,多个线程同时访问共享数据时可能会冲突,这跟前面讲信号时所说的可重入性是同样的问题。比如两个线程都要把某个全局变量增加1,这个操作在某平台需要三条指令完成: 1、从内存读变量值到寄存器 2、寄存器的值加1 3、将寄存器的值写回内存 假设两个线程在多处理器平台上同时执行这三条指令,则原创 2021-10-15 20:28:53 · 274 阅读 · 0 评论 -
线程的属性 —— 分离的状态(detached state)、栈地址(stack address)、栈大小(stack size)
一、引入 linux下线程的属性是可以根据实际项目需要,进行设置。之前我们讨论的线程都是采用线程的默认属性,默认属性已经可以解决绝大多数开发时遇到的问题。如我们对程序的性能提出更高的要求那么需要设置线程属性,比如可以通过设置线程栈的大小来降低内存的使用,增加最大线程个数。 t...原创 2021-10-15 20:00:25 · 2181 阅读 · 2 评论 -
Linux系统编程学习问题回顾
1、关于文件——继续学习系统io和文件io的区别,以及讲明白同步与互斥。关于锁,除了pv,还要继续学习自旋锁读写锁。2、关于进程与线程——第二阶段线程资源要回收;第三阶段进程资源要回收。回收的原因需要继续了解线程的四种属性。3、网络编程和ftp项目——说的资源不回收的问题了。socket的多连接能用线程不要用进程,芯片资源有限。4、socket中,tcp/ip相关的东西。三次握手,四次挥手,滑动窗口,拥塞控制这些。...原创 2021-09-29 10:34:30 · 211 阅读 · 0 评论 -
FTP云盘
项目简介FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。程序运行,服务端不断接收客户端指令,服务端可同时处理多个客户端接入并对指令作出解析,并把执行结果返回给客户端,客户端根据服务端对指令的解析并把由服务端传递过来的处理信息通过客户端呈现给客户,实现文件的各种操作。功能说明本文是基于Linux网络编程实现的FTP服务器,服务器由原创 2021-08-21 13:42:34 · 4815 阅读 · 0 评论 -
Linux网络编程小知识(字节序、IP格式、函数、子网掩码、DNS域名解析代码实现)
大端与小端本地字节序网络字节序IP格式点分时进制转换成二进制网络字节序的二进制转点分十进制点分十进制转网络字节序的二进制常用的比较好的函数子网掩码子网掩码的组成子网掩码的表示方式子网掩码的运算DNS域名解析原理代码实现测试原创 2021-07-18 15:48:13 · 312 阅读 · 1 评论 -
Linux网络编程(Socket)
目录网络编程(Socket)概述引入网络编程通识扫盲socket套接字套接字描述符字节序socket编程步骤Linux提供的API简析创建套接字即连接协议[socket] (客、服)准备好IP和端口[bind] (服)监听[listen] (服)接受连接[accept] (服)数据收发[read、write] (服、客)客户端的[connect]函数 (客)一级目录网络编程(Socket)概述引入前面几个章节讲的进程间通讯均基于同一台Linux内核实现的,因此无法实现多机(和手机、单片机、X86架构原创 2021-05-01 17:43:03 · 1389 阅读 · 3 评论 -
Linux线程编程
这里写目录标题线程概述线程概念线程与进程区别为何用线程一级目录线程概述线程概念一个进程包含一个或多个执行线程(通常只叫线程),线程是进程中的活动单位。线程是一种抽象,它负责执行代码和维护进程的运行状态。大部分进程只包含一个线程,它们被称为单线程(singel-thread),包含多个线程的进程称为多线程的(multithreaded)。从传统上将,因为Unix保持简洁、期望加快进程创建时间、保持健壮的进程通信机制,这些都减少了对线程的需求。可以说,Unix程序被单线程化了。线程包含栈(如同在非线程原创 2021-04-30 16:53:32 · 323 阅读 · 0 评论 -
Linux进程间通信(管道、消息队列、共享内存、信号、信号量)
目录1.Linux进程间通信概述2.管道无名管道有名管道(FIFO)消息队列消息队列的通信原理消息队列相关api消息队列收发数据键值生成消息队列移除共享内存信号信号量通信方式总结1.Linux进程间通信概述进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC 的方式通常有管道(包括无名管道和命名管道)、消息队列、共享内存、信号、信号量、Socket、Streams 等。其中 Socket 和 Streams 支持不同主机上的两个进程 IPC原创 2021-04-28 17:24:54 · 1297 阅读 · 0 评论 -
Linux进程编程(PS: exec族函数、system、popen函数)
目录1.进程相关概念程序和进程查看系统中的进程进程标识符父进程,子进程C程序的存储空间如何分配2.创建进程函数fork3.创建进程函数vfork4.进程退出5.父进程等待子进程退出6.exec族函数7.exec配合fork使用8.system函数9.popen函数1.进程相关概念程序和进程程序是静态的概念,gcc xx.x -o pro,磁盘中生成的pro就是程序。进程是程序的一次运行活动,通俗的讲就是程序跑起来了,系统中就多了一个进程。查看系统中的进程1、ps指令查看系统中所有进程ps -原创 2021-04-28 08:24:02 · 1473 阅读 · 0 评论 -
linux文件编程(4)—— 用ANSIC标准C库函数进行文件编程:fopen、fread、fwrite、fseek
fopenfreadfwritefseek文件的简单读写示例fputs,fputc,fgetc,fgets,feof原创 2021-04-27 08:36:36 · 552 阅读 · 0 评论 -
linux文件编程(3)—— main函数传参、myCp(配置成环境变量)、修改配置文件、将整数和结构体数组写到文件
文件编程的简单应用:myCp(同时配置成环境变量)、修改配置文件、整数和结构体数组写到文件原创 2021-04-26 09:33:35 · 531 阅读 · 0 评论 -
linux文件编程(2)——系统文件描述符、动静态文件、块设备介绍
文件操作原理简述之文件描述符、动静态文件、块设备的介绍原创 2021-04-26 09:33:54 · 206 阅读 · 0 评论 -
linux文件编程(1)—— open、write、read、lseek、阻塞问题(ps文件操作/文件描述符/重定向原理/缓冲区/标准错误)
linux文件编程—— 常用API之open、write、read、lseek的介绍原创 2021-04-26 09:34:06 · 1971 阅读 · 0 评论