Linux
文章平均质量分 54
linux学习记录
CodingStart
Sometimes there is no next time, no time-outs, no second chances; sometimes it's now or never.
展开
-
LGPL 与GPL的区别
GPL(GNU General Public License)我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。GPL协议的主要内容是只要在一个软件中使用("使用"指原创 2021-01-07 19:42:52 · 1373 阅读 · 0 评论 -
在Linux环境下编写一个简单的进度条
编写进度条思路: 左右中括号保持不动,从行首输出“=”,每次从头输出进度条字符串,进度条字符串里的内容不断增加,这样造成的视觉感觉是等号在增加,即进度条增加。过程: 第一步,在Linux平台下,打开终端,创建一个pro.c文件(“vim pro.c”,回车),并; 第二步,创建makefile文件。 第三步,编写以下代码,保存代码,退出;原创 2016-08-27 17:27:44 · 569 阅读 · 1 评论 -
C语言_FILE结构体的简单认识
1、文件和流的关系C将每个文件简单地作为顺序字节流(如下图)。每个文件用文件结束符结束,或者在特定字节数的地方结束,这个特定的字节数可以存储在系统维护的管理数据结构中。当打开文件时,就建立了和文件的关系。在开始执行程序的时候,将自动打开3个文件和相关的流:标准输入流、标准输出流和标准错误。流提供了文件和程序的通信通道。例如,标准输入流使得程序可以从键盘读取数据,而标准输出流使得程序可以转载 2016-08-27 13:49:14 · 3545 阅读 · 0 评论 -
Linux进程描述符——task_struct(初学者的简单学习)
进程是处于执行期的程序以及它所管理的资源(如打开的文件、挂起的信号、进程状态、地址空间等等)的总称。注意,程序并不是进程,实际上两个或多个进程不仅有可能执行同一程序,而且还有可能共享地址空间等资源。Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,这个结构体包含了一个进程所需的所有信息。它定义在linux-2.6.38.8/include/linux/sched.转载 2016-08-25 16:10:00 · 7502 阅读 · 0 评论 -
认识 \r , \b , \n
1. \r\n 和 \n 区别(来源:百度知道)\r是回车符,\n是换行符计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每原创 2016-08-25 16:00:59 · 1869 阅读 · 0 评论 -
Linux下find(文件查找)命令使用实例总结
find在不指定查找目录的情况下是对整个系统进行遍历查找使用格式 : find [指定查找目录] [查找规则] [查找完后执行的action]转载 2016-08-23 23:41:40 · 6839 阅读 · 0 评论 -
Linux文件的三种时间属性
在Windows操作系统下,文件有三种时间属性:创建时间、修改时间、访问时间在Linux操作系统下, 文件也有三种时间属性:访问时间、修改时间、状态改动时间在Linux操作系统下没有创建时间的概念 ,就是说我们不能知道文的创建时间 ,在文件创建后如果没有修改文件,那么修改时间=创建时间 ; 在文件建立后如果状态没有改动过,那么状态改动时间=创建时间;在文件建立后如果没转载 2016-08-21 18:11:32 · 824 阅读 · 0 评论 -
Linux命令——crontab命令
一、简介crond是Linux下用来周期性的执行某种任务 或等待某些 时间处理的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux下的系统调度分为两类:系统任务调度和用户任务调度 系统任务调度:系统周期性要执行的工转载 2016-09-09 23:19:06 · 555 阅读 · 0 评论 -
信号量 SEM_UNDO标识
一 、 为什么使用信号量?为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问 代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它, 也就是说信号量是用来调协进程对共享资源的访问的。其中共享内存的使用就要用到原创 2020-11-17 20:54:07 · 1319 阅读 · 0 评论 -
守护进程 & 创建守护进程 & fork一次和fork两次的区别
要知道在创建守护进程的时候fork一次和fork两次两者有什么区别,就要先知道第一次fork和第二次fork都起到了什么作用?(1)调用一次fork的作用:第一次fork的作用是让shell认为这条命令已经终止,不用挂在终端输入上,还有就是为了后面的setsid服务,因为调用setsid函数的进程不能是进程组组长,如果不fork出子进程,则此时的父进程是进程组组长,就无法调用set原创 2016-09-10 21:24:16 · 549 阅读 · 0 评论 -
ubuntu关机命令
ubuntu 关机命令 关机命令 shutdown ubuntu的终端中默认的是当前用户的命令,只是普通用户,因此在终端器中可以使用sudo -sh 转换到管理员root用户下执行命令。 1)shutdown –help 可以查看shutdown命令如何使用,当然也可以使用man shutdown命令。 2) shutdown -h now 现在立即关机 3)s原创 2016-09-03 18:22:21 · 2994 阅读 · 0 评论 -
线程安全与可重入函数
线程安全函数 • 概念: 线程安全的概念比较直观。一般说来,一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,它会一直产生正确的结果。 • 确保线程安全: 要确保函数线程安全,主要需要考虑的是线程之间的共享变量。属于同一进程的不同线程会共享进程内存空间中的全局区和堆,而私有的线程空间则主要包括栈和寄 存器。因此,对于同一进程的不同线程来转载 2016-09-04 15:12:22 · 388 阅读 · 0 评论 -
linux——进程管理
本篇博客,纯属博主自初学阶段对知识的系统复习 ,如有错误还望指出,感谢!比较程序与进程程序是静态保存的代码 , 进程是动态运行的代码 ;程序是文件 , 进程是正在运行的程序(程序的一个执行实例)通过查阅资料,对进程在进一步了解: 从内核观点来看,进程是担当分配系统资源的实体。进程是两个基本元素是 程序代码 和 代码相关联的数据集进程是⼀种动态描述,但是并原创 2016-09-04 22:32:56 · 368 阅读 · 0 评论 -
Linux——umask使用详解
什么是umask?当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。 这里要说明两点: 1、针对目录来说x权限代表可以进入该目录,所以说对于这个权限初始赋值是没什么问题的; 2、针对转载 2016-08-28 13:24:45 · 4580 阅读 · 0 评论 -
Linux中想进入一个目录、 在目录下创建文件、在文件内部删除文件 各需要什么权限?
1.想进入一个目录需要什么权限?首先我们在超级用户下创建一个dir_root目录,并且取消它的所有权限chmod 000 dir_root当我们想进入dir_root目录下的时候,发现就算dir_root对拥有者没有读、写、可执行权限,超级用户依然可以进入目录然后我们把当前用户切换为普通用户,在普通用户下面创建目录dir_Admin,并取消目录的所有权限原创 2016-08-29 16:47:35 · 3921 阅读 · 0 评论 -
Linux进程间通—— 消息队列
管道通信的几种方式:匿名管道 , 命名管道 , 消息队列,信号量,共享内存原创 2016-09-09 22:45:22 · 531 阅读 · 0 评论 -
函数执行过程(预处理->编译->汇编->链接)
一般高级语言程序编译的过程:预处理、编译、汇编、链接具体过程如图:在Linux环境下,我们进行操作:具体内容 ,读者可以自己试试看原创 2016-10-01 21:18:16 · 460 阅读 · 0 评论 -
生产者/消费者模式
转载:http://blog.csdn.net/kaiwii/article/details/6758942在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。单单抽象出生产者和消费者,还够不上是生产者/消费者模式。该转载 2016-09-16 15:40:27 · 577 阅读 · 0 评论 -
Linux下死锁的必要条件及如何避免死锁
死锁产生的原因:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个原创 2016-09-10 23:58:14 · 2398 阅读 · 0 评论 -
Linux进程间通信的几种方式
进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信原创 2016-09-10 14:45:38 · 805 阅读 · 0 评论 -
Linux进程通信——管道
管道通信的几种方式:匿名管道 , 命名管道 , 匿名管道匿名管道只能单向通信,且只能在有血缘关系的进程之间通信编写管道通信实例:#include#include#includeint main(){ int fd[2]; int ret = pipe(fd); if(ret == -1){ printf("creat pipe failure ")原创 2016-09-08 14:05:48 · 394 阅读 · 0 评论 -
函数调用栈祯
函数调用另一个词语叫过程,一个过程调用包括将数据和控制从代码的一部分传递到另一部分。另外,它还必须在进入时为过程的局部变量分配空间,并在退出时释放这些空间。而数据传递,局部变量的分配和释放通过操纵程序栈来实现。在了解函数调用栈祯之前首先得清楚程序对内存是如何使用的?堆和栈程序对内存的使用主要分为几个区:代码段:保存程序的二进制代码数据段:保存初始化的全局变量和static量原创 2016-09-06 16:46:07 · 619 阅读 · 0 评论 -
Linux——粘滞位(Sticky bit)
粘滞位(Stickybit),又称粘着位,是Unix文件系统权限的一个旗标。历史:粘滞位是在1974年Unix的第5版中引入的,用来设置可执行文件。当可执行文件设置粘滞位之后,它能够指示操作系统在程序退出后,保留程序的代码段到swap空间。当程序再次执行时,内核只需将程序从swap搬到内存即可,这能够加速程序的执行。所以,频繁使用的程序比如编辑器能够更快的打开。现在:最常见转载 2016-08-27 17:41:59 · 725 阅读 · 0 评论