![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
绿叶清风
这个作者很懒,什么都没留下…
展开
-
Linux查看gpio编号
【代码】Linux查看gpio编号。原创 2023-12-05 18:03:51 · 674 阅读 · 0 评论 -
Linux应用编程之进程编程
进程同步:一组并发的进程按照一定的顺序执行的过程称为进程间的同步。获取ID:#includepid_t getpid(void) //获取本进程IDpid_t getppid(void) //在子进程中获取父进程ID进程创建:#includepid_t fork(void)fork()的奇妙之处在于它被调用一次,却返回两次,它可能有三种不同的返回值:1转载 2016-09-06 17:14:55 · 505 阅读 · 0 评论 -
Linux进程间通信的几种方式总结
进程间通信概述进程通信的目的数据传输 一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间共享数据 多个进程想要操作共享数据,一个进程对共享数据通知事 一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。资源共享 多个进程之间共享同样的资源。为了作到这一点,需要内核转载 2016-09-06 18:45:24 · 803 阅读 · 0 评论 -
Linux的进程间通信 - 管道
Linux的进程间通信 - 管道版权声明:本文章内容在非商业使用前提下可无需授权任意转载、发布。转载、发布请务必注明作者和其微博、微信公众号地址,以便读者询问问题和甄误反馈,共同进步。微博ID:orroz微信公众号:Linux系统技术前言管道是UNIX环境中历史最悠久的进程间通信方式。本文主要说明在Linux环境上如何使用管道。阅读本文可以帮你解决以下问题:什原创 2016-09-06 20:31:13 · 1778 阅读 · 0 评论 -
Linux 进程间通信 --- 信号通信 --- signal --- signal(SIGINT, my_func); --- 按键驱动异步通知
信号 ( signal ) 机制是 UNIX 系统中最为古老的进程间通信机制,很多条件可以产生一个信号.信号的产生: 1,当用户按下某些按键时,产生信号. 2,硬件异常产生信号:除数为 0 ,无效的存储访问等等.这些情况通常由硬件检测到,将其通知内核, 然后内核产生适当的信号通知进程,例如,内核对正访问转载 2016-09-06 20:52:53 · 1059 阅读 · 0 评论 -
Linux进程间通信——使用共享内存
下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一转载 2016-09-06 21:34:50 · 527 阅读 · 0 评论 -
inux进程间通信——消息队列
一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。Linux用宏MSGMAX和MSGMNB来限制一条消息的最大长度和一个队列的最大长度。二、在Li转载 2016-09-06 23:12:26 · 488 阅读 · 0 评论 -
linux信号量
这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号。下面就进入信号量的讲解。一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码转载 2016-09-06 23:54:29 · 505 阅读 · 0 评论 -
Linux TCP网络编程
一.Linux下TCP编程框架TCP网络编程的流程包含服务器和客户端两种模式。服务器模式创建一个服务程序,等待客户端用户的连接,接收到用户的连接请求后,根据用户的请求进行处理;客户端模式则根据目的服务器的地址和端口进行连接,向服务器发送请求并对服务器的响应进行数据处理。1.服务器端程序包括Ø 建立套接字( socket())Ø 套接字与端口的绑定(bind())转载 2016-09-07 09:15:02 · 674 阅读 · 0 评论 -
Linux UDP编程
一. Linux下UDP编程框架使用UDP进行程序设计可以分为客户端和服务器端两部分。1.服务器端程序包括:Ø 建立套接字Ø 将套接字地址结构进行绑定Ø 读写数据Ø 关闭套接字2.客户端程序包括:Ø 建立套接字Ø 读写数据Ø 关闭套接字3.服务器端和客户端程序之间的差别服务器端和客户端两个流程之间的主要差别在于对地址的绑定函数(bind转载 2016-09-07 09:31:17 · 677 阅读 · 0 评论 -
LINUX环境并发服务器的三种实现模型
服务器设计技术有很多,按使用的协议来分有TCP服务器和UDP服务器。按处理方式来分有循环服务器和并发服务器。1 循环服务器与并发服务器模型在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求,对服务端的程序就提出了特殊的要求。目前最常用的服务器模型有:·循环服务器:服务器在同一时刻只能响应一个客户端的请求·并发服务器:服务器在同一时刻可以响应多个客户端的请求转载 2016-09-07 09:46:01 · 507 阅读 · 0 评论 -
Linux多线程编程
线程概念 线程是指运行中的程序的调度单位。一个线程指的是进程中一个单一顺序的控制流,也被称为轻量级线程。它是系统独立调度和分配的基本单位。同一进程中的多个线程将共享该系统中的全部系统资源,比如文件描述符和信号处理等。一个进程可以有很多线程,每个线程并行执行不同的任务。线程与进程比较 ① 和进程相比,它是一种非常“节俭”的多任务操作方式。在Linux系统中,启动一个新的进程必转载 2016-09-07 09:52:16 · 641 阅读 · 0 评论 -
Linux进程调度原理
本文系以下文章整理而来,并添加了自己的一些见解:(1)http://www.cnblogs.com/zhaoyl/archive/2012/09/04/2671156.html(2)http://os.51cto.com/art/201003/187407.htm(3)....(由于参考文章较多,恕不能一一列举,如有作者看到,请联系我更正)Linux进程的四大要素1:一段供原创 2016-09-06 16:56:38 · 908 阅读 · 0 评论 -
Linux应用编程之时间编程
一、时间的类型(1)格林威治标准时间 Coordinated Universal Time(UTC)是世界标准时间,即常说的格林威治标准时间(Greenwich Mean Time,GMT). 注:格林威治时间和本地时间不同.(2)日历时间 日历时间(Calendar Time)是用"一个标准时间点(如1970年1月1日0点)到此时经过的秒数"来表示的时间. 二转载 2016-09-06 16:25:04 · 471 阅读 · 0 评论 -
Linux 系统调用文件编程(文件操作)
在Linux下可以通过相应的文件I/O函数来完成对文件的操作,这些函数通常被称为不带缓冲的I/O,因为这些函数对文件的读写都是调用Linux内核的系统调用来实现的。基本的函数包括:open read write lseek(设置文件指针) close等文件打开函数调用格式:[cpp] view plain copy print?#include转载 2016-09-06 15:16:08 · 716 阅读 · 0 评论 -
linux学习之vi编辑器常用命令
Vim是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。Vim 没有菜单,只有命令原创 2014-09-18 15:35:44 · 964 阅读 · 0 评论 -
linux环境下C语言网络编程入门
(一)Linux网络编程--网络知识介绍Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。比如我们使用ftp程序从另外一 个地方获取文件的时候,原创 2015-01-12 09:45:32 · 1265 阅读 · 0 评论 -
makefile语法详解
什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一原创 2015-01-12 11:57:31 · 868 阅读 · 0 评论 -
GCC命令详解
GCC(GNU Compiler Collection)是Linux下最常用的C语言编译器,是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。同时它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada等。穿插一个玩笑: GNU意思是GNU’s not Unix而非角马。然而GNU还是一个未拆原创 2015-01-12 12:13:01 · 822 阅读 · 0 评论 -
linux多线程编程(c语言)
学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵。 下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。下面是我们的代码:/*thread_example.c : c multiple thread programming in linux原创 2015-01-12 12:00:05 · 878 阅读 · 0 评论 -
linux vi大全
进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复f原创 2015-04-29 00:14:07 · 529 阅读 · 0 评论 -
linux下gcc/g++的命令和使用详解
gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成可执行程序[链接器ld] [参数详解] -x langua转载 2016-09-06 14:02:02 · 2022 阅读 · 0 评论 -
GCC静态链接与动态链接
1 库的分类根据链接时期的不同,库又有静态库和动态库之分。静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行。有别于静态库,动态库的链接是在程序执行的时候被链接的。所以,即使程序编译完,库仍须保留在系统上,以供程序运行时调用。(TODO:链接动态库时链接阶段到底做了什么)2 静态库和动态库的比较链转载 2016-09-06 14:23:44 · 882 阅读 · 0 评论 -
linux使用gdb调试程序完全教程
转自 http://blog.csdn.net/gatieme程序的调试过程主要有:单步执行,跳入函数,跳出函数,设置断点,设置观察点,查看变量。 本文将主要介绍linux下的强大调试工具是怎么完成这些工作的。之所以要调试程序,是因为程序的运行结果和预期结果不一致,或者程序出现运行时错误。 调试的基本思想是: 分析现象 -> 假设错误原因 -> 产生新的现象去验证假设转载 2016-09-06 14:29:50 · 15829 阅读 · 1 评论 -
使用Makefile工程管理
一、体验在前面的笔记里可以看到,要编译一个简单的工程需要的编译步骤是很多的。前面还是只有一个汇编文件,在一个工程里,会有很多文件的,如果像前面的那种编译方式是很不可靠的。这就需要Makefile工程管理。例如前面的那个led.S,要编译成led.bin的步骤:图1-1:arm-linux-gcc -g -c led.Sarm-linux-ld -Tled.lds -o led.el原创 2016-09-06 14:48:50 · 1182 阅读 · 0 评论 -
Linux 库函数文件操作
利用库函数操作文件具有跨平台的作用(库函数不随系统平台而变,即不管win还是Linux都适用),而利用Linux 系统调用操作文件,需要考虑平台的兼容性。库函数 - 读文件size_t fread(void *ptr, size_t size, size_t n, FILE *stream)功能:从stream指向的文件中读取n个字段,每个字段为size字节,并将读取的数据放入原创 2016-09-06 16:17:08 · 631 阅读 · 0 评论 -
linux学习之shell基础
Shell的作用 -- 命令解释器,“翻译官”原创 2014-09-22 11:41:19 · 795 阅读 · 0 评论