Linux编程基础
文章平均质量分 86
王十二er
这个作者很懒,什么都没留下…
展开
-
基于Linux的文件操作(socket操作)
在linux中,socket也被认为是文件的一种,因此在网络数据传输过程中自然可以使用文件I/O的相关函数。而在Windows中,是要区分socket和文件的,所以在Windows中需要特殊的数据传输相关的函数。原创 2024-05-30 22:51:04 · 1554 阅读 · 0 评论 -
Linux网络编程——云服务器端口连接问题(error:10060)
之前在写一个聊天室的练手项目时候,需要用到云服务器,但是之前没有接触过云服务器,所以导致客户端的代码无法成功连接上云服务器上的服务端代码服务器返回了错误。原创 2024-05-30 21:56:58 · 301 阅读 · 0 评论 -
Linux中的文件描述符
文件描述符是Linux系统中用于管理和访问文件和I/O资源的基本工具。它们的分配规则确保了文件描述符的唯一性和有效性,避免了资源冲突和数据竞争。通过合理管理文件描述符,可以提高系统的稳定性和性能。了解文件描述符的分配规则和使用方法,是掌握Linux系统编程的重要基础。原创 2024-05-25 22:40:57 · 1102 阅读 · 0 评论 -
Linux 多线程的生产消费者模型
生产者-消费者模型是一种常见的并发编程模式,用于解决多个线程之间共享数据的问题。它的基本思想是将生产数据和消费数据的任务分离到不同的线程中,通过一个共享的缓冲区进行通信和数据传递。生产者线程生产数据并放入缓冲区。使用互斥锁来确保在访问缓冲区时没有其他线程同时访问。使用同步机制(条件变量)来确保在缓冲区满时停止放入数据,直到有空间为止。消费者线程从缓冲区中取出数据并处理。使用互斥锁来确保在访问缓冲区时没有其他线程同时访问。原创 2024-05-23 13:00:19 · 726 阅读 · 0 评论 -
Linux 信号量
信号量(Semaphore)是操作系统中用于管理并发进程的一种同步机制。它们用于控制对共享资源的访问,以避免竞争条件和数据不一致的问题。信号量主要分为两种类型:计数信号量(Counting Semaphore)和二进制信号量(Binary Semaphore),又称互斥量(Mutex)。原创 2024-05-23 12:28:09 · 1331 阅读 · 0 评论 -
Linux 共享内存
多线程共享进程的地址空间,如果多个线程需要访问同一块内存,用全局变量就可以了。在多进程中,每个进程的地址空间是独立的,不共享的,,不能用全局变量,只能用共享内存。共享内存(Shared Memory),是多个进程之间共享和传递数据最高效的方式。进程可以,如果某个进程了共享内存中的数据,。共享内存没有提供锁机制,也就是说,在某一个进程对共享内存进行读/写的时候,不会阻止其它进程对它的读/写。如果要对共享内存的 读/写 加锁,可以使用信号量。Linux中提供了一组函数用于操作共享内存。原创 2024-05-22 15:33:29 · 719 阅读 · 0 评论 -
Linux 进程(终止、创建、僵尸进程、多进程与信号)
关于linux进程的终止进程,创建进程,僵尸进程以及多进程与信号的相关知识原创 2024-05-22 14:32:45 · 955 阅读 · 0 评论 -
Linux的信号
信号(signal)是软件中断,是进程之间相互传递消息的一种方法,用于通知进程发生了事件,但是,不能给进程传递任何数据。如果向服务程序发送一个信号,服务程序收到信号后,调用一个函数,在函数中编写善后的代码,程序就可以有计划的退出。服务程序运行在后台,如果想让中止它,杀掉不是个好办法,因为进程被杀的时候,是突然死亡,没有安排善后工作。1)对该信号的处理采用系统的默认操作,大部分的信号的默认操作是终止进程。2)一个自定义的处理信号的函数,函数的形参是信号的编号。参数signum表示信号的编号(信号的值)。原创 2024-05-21 16:51:13 · 987 阅读 · 0 评论 -
Linux 时间操作
time_t 是一个长整数,不符合人类的使用习惯,需要转换成tm结构体,tm结构体在<time.h>中声明,如下: 2022-10-01 15:30:25 Oct 1,2022 15:30:25。time_t用于表示时间类型,它是一个long类型的别名,在<time.h>文件中定义,表示从1970年1月1日0时0分0秒到现在的秒数。mktime()函数的功能与localtime()函数相反,用于把tm结构体时间转换为time_t时间。包含头文件:<time.h>原创 2024-05-21 14:12:14 · 899 阅读 · 0 评论 -
Linux makefile
在实际开发中,项目的源代码文件比较多,按类型、功能、模块分别存放在不同的目录和文件中,哪些文件需要先编译,那些文件后编译,那些文件需要重新编译,还有更多更复杂的操作。make是一个强大的实用工具,用于管理项目的编译和链接。make需要一个编译规则文件makefile,可实现自动化编译。原创 2024-05-20 12:41:47 · 372 阅读 · 0 评论 -
Linux 静态库和动态库
在实际开发中,我们把通用的函数和类分文件编写,称之为库。在其它的程序中,可以使用库中的函数和类。一般来说,通用的函数和类不提供源代码文件(安全性、商业机密),而是编译成二进制文件。库的二进制文件有两种:静态库和动态库。原创 2024-05-20 08:36:15 · 1103 阅读 · 0 评论 -
Linux 文件夹常用命令(创建、删除、移动、重命名)
本文介绍了 linux 中文件夹的常用命令,包括如何创建、删除、移动文件到文件夹中、和对文件进行重命名等操作原创 2024-05-19 17:33:42 · 312 阅读 · 0 评论