
linux程序设计
下家山
天才比不过勤奋的人,勤奋的人比不过乐在其中的人,编程有乐趣,Hello,World。
——生命普适的意义,在于传递和传授知识,你看活着的时候,是通过实体方式传递,人死了,通过基因传递。
展开
-
三大通识知识:进程,线程,网络(五)
三大通识知识(一) :进程,线程,网络之间的关系三大通识知识(二):进程实现原理三大通识知识(三):线程实现原理三大通识知识(四):网络进程,线程,网络视频连接前言上一节课,我们讲了网络的几个常见问题:什么是网络,为什么叫TCP/IP,什么是OSI模型,如何记住OSI模型,为什么TCP是可靠的,UDP是不可靠的,为什么TCP是面向连接的,UDP是无连接的?这一节课,我们讲如何搭建TCP服务器和客户端。如何搭建TCP服务器TCP/IP协议已经发展了接近40年,所以已经非常成熟了,这种成熟不原创 2020-09-06 00:15:38 · 441 阅读 · 0 评论 -
三大通识知识:进程,线程,网络(四)
三大通识知识:进程,线程,网络(一)三大通识知识:进程,线程,网络(二)三大通识知识:进程,线程,网络(三)前言这节课我们介绍网络部分,包括如何搭建网络服务器,以及如何使用多线程技术支持多客户端。什么是网络网络是一个很复杂的体系,这个体系有多复杂呢?我记得我们当时很流行看《TCP/IP详解》这套书有三本大部头,卷一,卷二,卷三,当当有卖:因为当年做路由器,交换机开发的人非常多(处于网络基建阶段),所以基本上有一半的程序员看过这本书。整个体系是以TCP/IP展开的,我们不能在这里介绍整个体系知原创 2020-09-03 23:21:00 · 491 阅读 · 0 评论 -
三大通识知识:进程,线程,网络(三)
三大通识知识:进程,线程,网络(一)三大通识知识:进程,线程,网络(二)前言上一节课,我们介绍了进程的代码实现原理,讲到了子进程是如何产生的,进程的空间为什么是独立的,进程为什么可以裂变…,现在我们要过渡到线程了,我们在第一篇博客《三大通识知识:进程,线程,网络(一)》中讲到,因为进程太占用资源,所有发明了线程,解决了进程的缺陷,有人就有疑问了,那为什么要进程呢,进程没有优点吗?进程存在的意义操作系统是通过进程来管理所有程序的,其实我们任何一个程序,在电脑上运行起来后,至少有一个进程,很多时候你不原创 2020-09-02 22:39:10 · 320 阅读 · 0 评论 -
三大通识知识:进程,线程,网络(二)
三大通识知识:进程,线程,网络(一)前言上一篇,叙述了进程,线程,网络的关系,这一篇我们讲进程的实现原理,这里所说的实现原理式代码级别的,动手做比一切理论都有效。实验环境系统:ubuntu语言:C语言进程是如何让两个while 1同时运行的我们先看实验用例下图中,左边是代码,右边是运行结果。我们通过gcc fork.c编译,等到了可执行程序a.out,运行的时候,星号和点在屏幕上交替打印;其中,星号是子线程打印的,点是父进程打印的。子进程的产生,主要靠第7行代码,fork函数,fork原创 2020-09-01 23:42:54 · 400 阅读 · 0 评论 -
三大通识知识:进程,线程,网络(一)
前言进程,线程,网络是各操作系统的三大基石,整个操作系统就是在这三个基石上做扩展;同时,进程,线程,网络也是各大编程语言中必讲的,而且是属于高级部分,高级部分的意思就是比较难理解,难懂的;多线程编程是三大通识知识之一(进程,线程,网络),而且我觉得在linux系统上,使用C语言学习多线程会更好,因为:第一,linux是开源系统;第二,c语言是语言之母,对线程的原理理解得更好(python语言是一种实用主义语言,屏蔽了很多原理,有时候不知道为什么是这样);第二,多线程体系是原生态的,也就是说在li原创 2020-08-31 22:33:18 · 511 阅读 · 0 评论 -
关于行缓存,全缓存,无缓存的基本原理
下家山(csdn的富文本处理出问题,无法删除下面的空行)要把行缓存,全缓存,行缓存相关知识彻底的搞清楚,需要了解的知识比较多,本文只从应用出发,不罗嗦不累赘直击重点。1:什么是行缓存先看例子:程序中的while(1);这条语句是为了挡住程序不让退出运行结果不会输出任何东西因为printf默认操作的是stdout(标准输出——显示器)而s...原创 2019-07-27 00:08:08 · 2625 阅读 · 4 评论 -
Linux线程
Linux线程 作者:下家山一:线程主函数1.1 代码说明1.2 运行结果1.3 实例解析首先,我们定义了在创...原创 2019-01-16 18:02:11 · 446 阅读 · 0 评论 -
进程中的信号
进程中的信号 作者:下家山一:进程中的信号1.1信号的定义:信号是unix和linux系统响应某种条件而产生的一个事件。接收到该...原创 2019-01-16 17:23:14 · 781 阅读 · 0 评论 -
进程通信IPC
进程通信IPC 作者:下家山一:管道popen我们在学习进程的时候,看到一种在两个进程间发送消息的非常简单的方法:使用信号量。我们创建通知事件,通过它引起响应,但传送的信息只限于一个信号值。在本章,我们将介绍管道,通过它进程之间可以交换更有用的数据。1.1 什么是管道当一个进程链接数据流到另一个进程时,我们使用管道,通常是把一个进程...原创 2019-01-17 15:34:10 · 979 阅读 · 0 评论 -
线程-----互斥量
作者:下家山一:互斥锁实例1.1 代码是最后的了解手段题目:有四个线程,T1,T2,T3,T4。其中T1,T2,T3三个线程负责给共享资源sum【全局变量】加1,T4检测当sum到达100的时候,打印sum的值,并清零,通知其他线程结束。 1.2 设计思路: T1,T2,T3的代码我们可以共享,代码框架如下:Void *T123_Work(void *arg...原创 2019-01-17 15:26:24 · 237 阅读 · 0 评论 -
linux磁盘操作
文件系统组织形式 作者:下家山一:文件系统的三个区域 1.1 怎么知道超级块上面中有一个主超级快primary superblock和一个备份超级快backup superblock1.2 如何查看节点数1.3 如何查看磁盘空间 1.4 如何查看硬盘分区信息1.5 如何查看某...原创 2018-12-24 17:22:03 · 339 阅读 · 0 评论 -
如何判断一个文件是什么类型的文
作者:下家山 一:access函数如何确定即将访问的文件是否有访问权限1.1 第一种方法,通过ls -a查看怎么知道那个rwx属于u,哪个属于g,那个属于o?所以,第一个属于u【usr】,第二个属于g【group】,第三个属于o【other】问题:如果没有交互界面如何通过程序代码检查某个文件的访问...原创 2018-12-24 17:12:50 · 5599 阅读 · 0 评论 -
如何自由的操作文件和目录时间
关于atime,ctime,mtime和utime 下家山整理验证 二:如何设置时间mktime2.1 函数原型2.2 tm结构体是什么?2.3 time_t【时间类型】是个什么类型?2.4 设置时间并取出时间2.5 关于起始年份,起始月份因为月份是从0开始的。...原创 2018-12-24 17:03:18 · 225 阅读 · 0 评论 -
linux 文件控制函数Fcntl
Fcntl【文件控制】函数 作者:下家山一:fcntl函数是用来做什么的?二:fcntl返回值fcntl()的返回值与命令有关。如果出错,所有命令都返回-1,如果成功则返回某个其他值。下列三个命令有特定返回值:F_DUPFD , F_GETFD , F_GETFL以及F_GETOWN。 F_DUPFD 返回新的文件描述符 F_GETFD ...原创 2018-12-24 16:56:08 · 670 阅读 · 0 评论 -
linux重定向技术dup和dup2
关于DUP和DUP2作者:下家山dup和dup2函数是两个非常实用,而且功能很强大的函数,它可以把打印到屏幕的内容中重定向(改变方向)到文件中。常用于日志输出。二:什么是原先的文件描述符,什么是新的文件描述符三:怎么理解这句话以第二个参数指定新描述符的数值!如果新描述符已经打开,则关闭之!如若,oldfd=newfd,则返回没有使用的描述符,而不关闭它!四:dup和...原创 2018-12-24 16:39:25 · 398 阅读 · 0 评论