嵌入式linux从入门到精通之第九节:系统编程

产品人卫朋 产品人卫朋     2023-02-02     189

关键词:

系统编程概述

在讲解系统编程之前,先了解几个概念:

操作系统的作用:
操作系统用来管理所有的资源,并将不同的设备和不同的程序关联起来。

什么是Linux系统编程?
在有操作系统的环境下编程,并使用操作系统提供的系统调用及各种库,对系统资源进行访问。
学会了C语言再知道一些使用系统调用的方法,就可以进行Linux系统编程了。

类UNIX系统的软件层次

 

系统调用是操作系统提供给用户程序的一组“特殊”函数接口。
Linux的不同版本提供了两三百个系统调用。
用户程序可以通过这组接口获得操作系统(内核)提供的服务。

例如:
用户可以通过文件系统相关的系统调用,请求系统打开文件、关闭文件或读写文件。

 

系统调用按照功能逻辑大致可分为:
进程控制、进程间通信、文件系统控制、系统控制、内存管理、网络管理、socket控制、用户管理。

系统调用的返回值:
通常,用一个负的返回值来表明错误,返回一个0值表明成功。错误信息存放在全局变量errno中,用户可用perror函数打印出错信息。

系统编程I/O函数

系统调用中操作I/O的函数,都是

嵌入式linux从入门到精通之第十节:系统编程之进程

进程的定义程序:程序是存放在存储介质上的一个可执行文件。进程:进程是程序的执行实例,包括程序计数器、寄存器和变量的当前值。程序是静态的,进程是动态的:程序是一些指令的有序集合,而进程是程序执行的过程。... 查看详情

嵌入式linux从入门到精通之第七节:gtk+概述

什么是GTK+ 查看详情

嵌入式linux从入门到精通之第八节:gtk+详解

GTK+常用布局什么是布局 查看详情

嵌入式linux从入门到精通之第十三节:系统编程之互斥与同步(代码片段)

互斥锁(mutex)mutex是一种简单的加锁的方法来控制对共享资源的访问,mutex只有两种状态,即上锁(lock)和解锁(unlock)。在访问该资源前,首先应申请mutex,如果mutex处于unlock状态,则会申请到mutex并立即lock;如果mutex处于lock状态,则默... 查看详情

嵌入式linux从入门到精通之第一节:软件安装

Linux安装ubuntu环境安装1.安装VmwarePlayer虚拟机:双击VMware-player.exe,一路next即可;2.打开虚拟机,点击CreataNewVirtualMachine;3.选择稍后设置;4.选择Linux,ubuntu;5.选择虚拟机名称和路径;6.硬盘选择50G;7.改变虚拟机设置,进行内存相... 查看详情

嵌入式linux从入门到精通之第二节:语言基础

C语言基础1、关键字C的关键字共有32个   •数据类型关键字(12个)      char,short,int,long,float,double,      unsigned,signed,struct,union,enum,void  查看详情

嵌入式linux从入门到精通之第四节:深入指针分析

存储器要深入学习指针就需要先了解一下什么是存储器。存储器是指存放数据的器件。1、内存      内部存储器.常见的内存有:ram、DDRII      存储的数据掉电丢失。暂存数据  &n... 查看详情

嵌入式linux从入门到精通之第十四节:linuxio控制技术

目录设备控制概述操作设备文件函数监听文件描述符示例设备控制概述对于硬件设备,Linux采用了与裸机完全不同的机制进行管理。Linux下的所有硬件(IO、键盘、鼠标等)均是以文件的形式进行统一管理的,每个设备在/dev/目录下... 查看详情

嵌入式linux从入门到精通之第十五节:嵌入式系统简介

嵌入式系统的层级结构如下图所示:开发环境这里以三星s5pv210为开发环境:系统资源s5pv210是三星公司推出的32位RISC微处理器,其CPU采用的是ARMCortex-A8内核,基于ARMv7架构丰富的片内资源,为手持设备和其它移动领域应用,提供了... 查看详情

嵌入式linux从入门到精通之第三节:字符串处理函数(代码片段)

字符串整体操作函数  strlen//长度测量    strcpy/strncpy//拷贝    strcat/strncat//连接    strcmp/strncmp//比较   头文件:#include<string. 查看详情

嵌入式linux从入门到精通之第十二节:线程

线程类比于人得大脑,进程来实现具体操作每个进程都拥有自己的数据段、代码段和堆栈段,这就造成进程在进行创建、切换、撤销操作时,需要较大的系统开销。为了减少系统开销,从进程中演化出了线程。线程存在于进... 查看详情

嵌入式linux从入门到精通之第十六节:u-boot分析

简介u-boot最初是由PPCBoot发展而来的,可以引导多种操作系统、支持多种架构的CPU,它对PowerPC系列处理器的支持最为完善,而操作系统则对Linux系统的支持最好目前已成为Armboot和PPCboot的替代品。特点:主要支持操作系统:Linux、N... 查看详情

嵌入式linux从入门到精通之第六节:shell脚本(代码片段)

shell的两层含义shell既是一种应用程序,又是一种程序设计语言作为应用程序:   交互式地解释、执行用户输入的命令,将用户的操作翻译成机器可以识别的语言,完成相应功能作为程序设计语言:   它定义... 查看详情

嵌入式linux从入门到精通之第六节:shell脚本(代码片段)

shell的两层含义shell既是一种应用程序,又是一种程序设计语言作为应用程序:   交互式地解释、执行用户输入的命令,将用户的操作翻译成机器可以识别的语言,完成相应功能作为程序设计语言:   它定义... 查看详情

嵌入式linux从入门到精通之第十一节:进程间通信

进程间通信(IPC:InterProcessesCommunication)进程是一个独立的资源分配单元,不同进程(这里所说的进程通常指的是用户进程)之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源(例如打开的文件描述符)... 查看详情

嵌入式linux从入门到精通之第五节:链表(代码片段)

链表基础   使用链表原因:   使用数组远远不能达到我们的要求   因为数组必须实现确定大小,不能实现动态申请、释放   使用malloc动态内存分配也无法实现   malloc申请的... 查看详情

嵌入式linux从入门到精通之第五节:链表(代码片段)

链表基础   使用链表原因:   使用数组远远不能达到我们的要求   因为数组必须实现确定大小,不能实现动态申请、释放   使用malloc动态内存分配也无法实现   malloc申请的... 查看详情

scala入门到精通——第二十九节scala数据库编程

本节主要内容ScalaMavenproject的创建ScalaJDBC方式訪问MySQLSlick简单介绍Slick数据库编程实战SQL与Slick相互转换本课程在多数内容是在官方教程上改动而来的,官方给的样例是H2数据库上的。经过本人改造,用在MySQL数据库上,官方教程... 查看详情