![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux应用编程和网络编程
典型的嵌入式产品的研发过程就是;第一步让linux系统在硬件上跑起来(系统移植工作),第二步基于linux系统来开发应用程序实现产品功能。基于linux去做应用编程,其实就是通过调用linux的系统API来实现应用需要完成的任务。
big__C
小白
展开
-
Linux应用编程和网络编程(1)------- linux中的文件IO
目录文件操作的主要接口API一个简单的文件读写实例文件操作的主要接口API什么是文件IO(1)IO就是input/output,输入/输出。文件IO的意思就是读写文件。1、什么是操作系统API(1)API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用。(2)应用层程序通过调用API来调用操作系统中的各种功能,来干活。(3)学习一个操作系统,其实就是学习使用这个操...原创 2020-04-28 00:30:46 · 534 阅读 · 0 评论 -
Linux应用编程和网络编程(2)------- linux中操作与管理文件
目录一,linux系统如何管理文件lseek详解多次打开同一文件与O_APPEND文件共享的实现方式文件描述符的复制1fcntl函数介绍标准IO库介绍一,linux系统如何管理文件1、硬盘中的静态文件和inode(i节点)(1)文件平时都在存放在硬盘中的,硬盘中存储的文件以一种固定的形式存放的,我们叫静态文件。(2)一块硬盘中可以分为两大区域:一个是硬盘内容管理表项,另一个是真正存储内容...原创 2020-05-09 22:50:27 · 443 阅读 · 0 评论 -
Linux应用编程和网络编程(3)------- Linux中文件的属性
目录一,linux中各种文件类型二,常用文件属性获取三,stat函数的应用案例四,文件权限管理五,读取目录文件一,linux中各种文件类型1、普通文件(- regular file)(1)文本文件。文件中的内容是由文本构成的,文本指的是ASCII码字符。文件里的内容本质上都是数字(不管什么文件内容本质上都是数字,因为计算机中本身就只有1和0),而文本文件中的数字本身应该被理解为这个数字对应的ASCII码。常见的.c文件, .h文件 .txt文件等都是文本文件。文本文件的好处就是可以被人轻松读懂和编原创 2020-05-11 22:40:12 · 349 阅读 · 0 评论 -
Linux应用编程和网络编程(4)------- 系统信息的获取
目录一,关于时间的概念二,linux系统中的时间linux中使用随机数proc文件系统介绍proc文件系统的使用一,关于时间的概念1、GMT时间(1)GMT是世界时也就是格林尼治时间,也就是格林尼治地区的当地时间。(2)GMT时间的意义?用格林尼治的当地时间作为全球国际时间,用以描述全球性的事件的时间,方便大家记忆。(3)一般为了方便,一个国家都统一使用一个当地时间。2、UTC时间(1)GMT时间是以前使用的,近些年来越来越多的使用UTC时间。(2)整个地球分为二十四时区,每个时区都有自己的原创 2020-05-12 21:40:18 · 476 阅读 · 0 评论 -
Linux应用编程和网络编程(5)------- 进程全解之父子进程
目录程序的开始和结束进程的引入程序的开始和结束1、程序的开始(1)main函数由编译链接时的引导代码调用。操作系统下的应用程序其实在main执行前也需要先执行一段引导代码才能去执行main,我们写应用程序时不用考虑引导代码的问题,编译连接时(准确说是连接时)由链接器将编译器中事先准备好的引导代码给连接进去和我们的应用程序一起构成最终的可执行程序。(2)运行时的加载器。加载器是操作系统中的程序,当我们去执行一个程序时(譬如./a.out,譬如代码中用exec族函数来运行)加载器负责将这个程序加载到内存原创 2020-05-15 16:22:47 · 1170 阅读 · 1 评论 -
Linux应用编程和网络编程(6)------- 进程全解之进程状态,进程关系,进程通信
目录进程状态和system函数进程关系守护进程的引入编写简单守护进程使用syslog来记录调试信息让程序不能被多次运行linux的IPC机制1-管道SystemV IPC介绍进程状态和system函数1、进程的5种状态(1)就绪态。这个进程当前所有运行条件就绪,只要得到了CPU时间就能直接运行。(2)运行态。就绪态时得到了CPU就进入运行态开始运行。(3)僵尸态。进程已经结束但是父进程还没来得及回收(4)等待态(浅度睡眠&深度睡眠),进程在等待某种条件,条件成熟后可进入就绪态。等待态下就原创 2020-05-16 17:18:49 · 301 阅读 · 0 评论 -
Linux应用编程和网络编程(7)------- linux中的信号
目录一,什么是信号二,常见信号介绍三,进程对信号的处理四,alarm和pause函数一,什么是信号1、信号是内容受限的一种异步通信机制(1)信号的目的:用来通信(2)信号是异步的(对比硬件中断)(3)信号本质上是int型数字编号(事先定义好的)2、信号由谁发出(1)用户在终端按下按键(2)硬件异常后由操作系统内核发出信号(3)用户使用kill命令向其他进程发出信号(4)某种软件条件满足后也会发出信号,如alarm闹钟时间到会产生SIGALARM信号,向一个读端已经关闭的管道write时会原创 2020-05-17 12:13:42 · 318 阅读 · 0 评论 -
Linux应用编程和网络编程(8)-------Linux中的高级IO
目录一,非阻塞IO与阻塞式IO二、并发式阻塞IO的解决1、非阻塞式IO2、IO多路复用2.1、IO多路复用的原理2.2、IO多路复用的使用3、异步IO4、存储映射IO一,非阻塞IO与阻塞式IO1. 非阻塞式IO和阻塞式IO的区别非阻塞式IO是用户发出IO请求后不进行等待,直接获得一个结果,通常使用时用O_NONBLOCK配合fcntl来完成。阻塞式IO是当用户线程发出IO请求之后,内核会去查看资源是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU,常见的阻塞有wa原创 2020-05-17 17:09:21 · 282 阅读 · 0 评论 -
Linux应用编程和网络编程(9)------- 线程同步的简单应用
目录线程的引入线程常见函数线程同步之信号量线程同步之互斥锁线程同步之条件变量线程的引入.1.再论进程3.7.1.1、多进程实现同时读取键盘和鼠标3.7.1.2、使用进程技术的优势(1)CPU时分复用,单核心CPU可以实现宏观上的并行(2)实现多任务系统需求(多任务的需求是客观的)3.7.1.3、进程技术的劣势(1)进程间切换开销大(2)进程间通信麻烦而且效率低3.7.1.4、解决方案就是线程技术(1)线程技术保留了进程技术实现多任务的特性。(2)线程的改进就是在线程间切换和线程间通信原创 2020-05-18 22:30:43 · 336 阅读 · 0 评论 -
Linux应用编程和网络编程(10)------- 网络的基础知识
目录网络通信概述网络通信的发展历程网络通信概述1、从进程间通信说起:网络域套接字socket,网络通信其实就是位于网络中不同主机上面的2个进程之间的通信。2、网络通信的层次(1)硬件部分:网卡(2)操作系统底层:网卡驱动(3)操作系统API:socket接口(4)应用层:低级(直接基于socket接口编程)(5)应用层:高级(基于网络通信应用框架库)(6)应用层:更高级(http、网络控件等)3、本部分学习方法(1)重点1:掌握网络通信的架构层次和基本原理(2)重点2:掌握socke原创 2020-05-19 16:56:34 · 1432 阅读 · 4 评论 -
Linux应用编程和网络编程(11)-------TCP/IP协议的简单学习与应用socket接口编程
目录linux网络编程框架linux网络编程框架TCP协议的学习socket编程接口介绍IP地址格式转换函数实践soekct实践编程原创 2020-05-20 17:49:01 · 574 阅读 · 0 评论