Linux
文章平均质量分 74
lc_29503203
这个作者很懒,什么都没留下…
展开
-
Linux中实现一个简单的进度条
说起进度条,其实大家常常见到,比如说你在下载视频或文件的时候,提示你当前下载进度的就是我们今天要说的进度条,进度条的模拟实现是挺简单的,但是要做的比较实用还是需要注意很多地方的,下来我就一步步的深入分析一下进度条得实现。1.起初写下了这样的代码,解释以下几点:1>首先我们需要将[ ]固定在左右两边,中间预留下空间,然后用“=”进行填充。这里printf("[%-100s]\r",str);原创 2017-01-01 13:48:43 · 5727 阅读 · 3 评论 -
Linux下的静态库和动态库
Linux下有静态链接库和动态链接库两种,本文就其区别,生成静态库动态库的有关gcc命令以及生成静态库动态库的方法作一介绍。一.静态库和动态库的区别:1.静态链接库的后缀名是.a,动态链接库的后缀名是.so;2.静态链接库是指程序在编译链接的过程中所有使用到的函数库都会被加载到目标文件中,这种处理方式的优点是编译后的执行程序不需要外部函数库的支持,同样的这种处理方式既是它的优点,同时也原创 2017-02-18 00:04:38 · 606 阅读 · 0 评论 -
gdb调试多线程
gdb的线程调试命令将在下面边调试边介绍,下面先给出示例代码:示例代码:#include#include#include void* pthread_run1(void* arg){ int count=5; while(count--) { printf("hello world!\n"); sleep原创 2017-03-05 19:14:18 · 715 阅读 · 0 评论 -
gdb调试多进程
先前我们初步了解了一些有关gdb调试的基本命令,今天我们尝试着用它来调试多进程和多线程,看看在调试过程中它们是如何切换的。gdb调试多进程1. 默认设置下,在调试多进程程序时gdb只会调试父进程,但是为了可以对父进程和子进程都做到调试,gdb新版本就附加了调试子进程的功能。但需要设置follow-fork-mode(默认值:parent) 和 detach-on-fork(默认原创 2017-03-05 16:36:32 · 636 阅读 · 0 评论 -
可重入函数与线程安全的区别与联系
本文主要介绍一下可重入函数与线程安全的区别与联系,在此之前我们先来了解一些基本概念:什么是线程全函数,什么是可重入函数?线程安全函数概念线程安全的概念比较直观,一般来说,一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,它会一直产生正确的结果。确保线程安全要确保函数线程安全,主要需要考虑的是线程之间的共享变量。属于同一线程的不同进程会共原创 2017-02-24 13:24:17 · 1085 阅读 · 0 评论 -
进程的调度算法
一个线程/进程要经历5个状态,创建,就绪,运行,阻塞,终止。如下图是操作系统的线程/进程的状态模型:今天我们重点研究一下进程由就绪到运行这一过程中的系统调度,通常在并发运行中,CPU需要在多个进程之间来回切换,那么切换就有一些策略,这就是我们今天的主题---进程的调度算法:注明:并发与并行的区别,并发指的是在一个时间段内,有几个进程都在同一个CPU上运行,但任意一个时刻原创 2017-01-22 15:26:23 · 893 阅读 · 0 评论 -
浅析Linux下的task_struct结构体
本文的重点是剖析task_struct,在这之前我们需要先了解一下进程的概念和Linux下进程控制块PCB。1.首先什么是进程?1.1进程可以这样描述:1>进程是程序的一个执行实例; 2>进程是正在执行的程序; 3>进程是能分配处理器并由处理器执行的实体。按内核观点来谈进程:它担当分配系原创 2017-01-19 23:20:12 · 19683 阅读 · 0 评论 -
Linux下的find指令
Linux下find命令提供了相当多的查找条件,功能很强大,但是不到万不得已的时候是不会用它来查找文件的,因为它存在两个缺陷:一是查找速度慢,二是费硬盘。 通常情况下,我们都是先使用whereis或者locate来查找,如果真的找不到了,才用find来查找。这里需要明白一点的是linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和locate时,会从原创 2016-12-28 11:37:39 · 8045 阅读 · 2 评论 -
Linux下的atime mtime ctime及如何用touch来修改
Linux文件下通常有三个时间参数:(1)modification time(mtime):内容修改时间 这里的修改时间指的是文件的内容发生变化,而更新的时间。(2)change time(ctime):状态修改时间 这里的修改时间指的是文件的属性或者权限发生变化,而更新的时间。(3)access time(atime):最后访问原创 2016-12-26 12:08:44 · 6587 阅读 · 2 评论 -
多线程编程
1.线程概念; 2.有关线程的一些理解; 3.线程的控制 ; 4.获取线程的id ; 5.线程的可结合和可分离; 6.线程切换的情况; 7.在Linux环境下进程与线程的区别.1.线程概念 进程在各自独立的地址空间中运行,进程之间共享数据需要用mmap或者进程间通信机制,而今天介绍的多线程是进程内部执行的一个分支,同一进程的多个线程共享同一地址空间,因此文本段、数据段都是原创 2017-05-28 20:57:37 · 648 阅读 · 0 评论