分类: linux基础

找到 11 篇相关文章

简介 Linux的`make`程序用来自动话编译大型源码,实现只需要一个`make`执行就可以全自动完成。 `make`能自动化完成,是因为项目路径下提供了一个`Makefile`文件,由该文件负责告诉`make`,应该去编译和链接该项目程序。 `make`起初只针对C语言开发,但它实际应用并不限定C语言,而是执行Linux命令去应用到任意项目,甚至不是编程语言。 >此外`make`...

linux基础

线程池的原理 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发得线程数量很多,并且每个线程都是执行一个时间很短得任务结束了,这样频繁得创建线程会降低系统的效率,因为频繁创建线程和销毁线程需要时间。 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都可以默认得堆栈大小,以默认优先级运...

linux基础

线程同步的概念 多个线程对内存中的共享资源访问时,让线程进行线性的方式,有顺序的访问。线程对内存的这种访问方式就是线程同步。 下面是一个两个线程同时对变量num,进行加1的操作的demo,但是最终结果与预想结果,有很大差异。下面我们将分析并解决线程同步的问题。 ``` #include <pthread.h> #include <stdio.h> #include <unistd.h> #...

linux基础

多线程特点 线程是轻量级的进程,在Linux环境下线程的本质仍是进程。在计算机上运行的程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行。操作系统会以进程为单位,分配系统资源。 可以理解为:进程是资源分配的最小单位,线程是操作系统调度的最小单位。 在概念上了解线程与进程的区别: - 进程有自己独立的地址空间,多个线程共用一个地址空间 - 线程更加节省系统资源,效率不...

linux基础

流与FILE对象 **在标准IO中,所有的操作都是围绕流(stream)进行的**。当用标准IO库打开或创建一个文件时,我们已使一个流与一个文件相关联。 对于ASCII字符集,一个字符用一个字节表示。对于国际字符集,一个字符可以用多个字节表示。标准IO文件流可用单个字节和多字节字符集。 流的定向决定了所读、写的字符是单字节还是多字节的。 **当一个流最初被创建时,他并没有指向**。如...

linux基础

我们从stat函数开始,逐个说明state结构的每一个成员以了解文件的所有属性。并说明修改这些属性的各个函数(修改所有者、修改权限等)。 stat、fstat和lstat函数 ``` #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *pathname, struct st...

linux基础

引言 在UNIX系统中可用的文件I/O函数——打开文件、读文件、写文件等。UNIX系统中大多数文件I/O只需用5个函数:open、read、write、lseek、close。 文件描述符 文件描述符贯穿sysio系统调用的类型 对Kernel而言,所有打开的文件都通过文件描述符引用。**文件描述符就是一个非负整数**。当打开一个现有文件或创建一个新文件时,**内核向进程返回一个文件描述...

linux基础

**内存为程序分配空间有四种分配方式:** - 连续分配方式 - 基本分页存储管理方式 - 基本分段存储管理方式 - 段页式存储管理方式 连续分配方式 连续分配方式实现起来比较方便,所需要的硬件支持比较少 连续分配方式可以细分为四种:**单一连续分配、固定分区分配、动态分区分配和动态重定位分配** 其中固定分区的分配方式,因为分区固定,所以缺乏灵活性,当程序太小时,会造成内存浪费...

linux基础

遇见问题 我在跟随左盟主学习imx6ull的时候,遇见了一个比较难受的问题——**VS code因为找不到头文件而警告**,明明定义并声明了.h文件,但是当引用它的时候就会报错,然而它并不影响我的工程的编译。 但是作为一个强迫症患者,我见不得我的代码里有红色圆点的时候编译它,这样会很难受。所以我找了一下正点原子客服,询问这个情况,客服表示是编译器问题,让我正常使用就可以。但这并不是我...

linux基础

make工具 当源码文件比较多的时候,不是适合直接输入gcc命令来编译,这时候就需要一个自动化的编译工具。make工具通过Makefile的文件来完成并自动维护编译。 当我们有多个源文件的是时候,我们只用GCC的话就会比较麻烦如: ``` gcc main.c input.c output.c -o main ``` 那么这样的话生成的可执行文件,是可以运行的,但是如果我们有几千个源...

linux基础

实现Ubuntu与Window进行文件互传 若使用虚拟的情况,可以直接在Window下复制进行粘贴到Ubuntu中;但是这种方式只限制在一个硬件上安装两个系统。 当时两个真正的硬件系统时候,就无法通过右键-复制粘贴,进行文件互传。那么我们就需要了解一种通用的Ubuntu与Window互传文件的方式——FTP服务。 开启Ubuntu下的FTP服务 在命令行中,输入指令 ``` sud...

linux基础