《Android深度探索(卷1):HAL与驱动开发》——1.5节如何学习Linux驱动开发
本节书摘来自异步社区《Android深度探索(卷1):HAL与驱动开发》一书中的第1章,第1.5节如何学习Linux驱动开发,作者李宁,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.5 如何学习Linux驱动开发Android深度探索(卷1):HAL与驱动开发由于Linux的内核版本更新较快(稳定版本1至3月更新一次,升级版本1至2周更新一次),每一次内核的变化就意味着Linux驱动的变化(就算不需要修改驱动代码,至少也得在新的Linux内核版本下重新编译),所以Linux内核的不断变化对从事Linux驱动开发的程序员影响比较大。不过这对于学习Linux驱动开发来说影响相对较小。因为不管是哪个版本的Linux内核,开发Linux驱动的方法和步骤基本相同,只要掌握了一个Linux内核版本(建议使用Linux 2.6或Linux 3.x内核版本)的驱动开发,其他Linux内核版本就很容易掌握了。
学习Linux驱动开发只有Linux内核还不行,需要有一个真正的操作系统来搭建Linux驱动的开发环境,并在该系统下测试Linux驱动。开发Linux驱动强烈建议使用Linux系统。目前在个人操作系统领域比较常用的Linux系统有很多,读者可以选择自己熟悉的Linux系统作为自己的实验环境。由于本书主要介绍如何开发和测试Linux驱动,而Google测试Android源代码时使用的就是Ubuntu Linux,因此,强烈建议读者使用Ubuntu Linux 10.04或以上版本来开发并测试Linux驱动。本书的所有代码都在Ubuntu Linux 11.10下测试通过。为了方便读者学习,在随书光盘中提供了VMWare的虚拟机映像文件(Ubuntu Linux 11.10,内存:2GB,登录用户名:root,登录密码:androidkernel),并且已经配置好了Linux驱动的开发环境,而且包含了本书涉及的所有源代码。读者可以很容易地按照本书给出的方式编译和运行本书的示例。
GNU C也是学习Linux驱动的一个必须掌握的技术。GNU C是对标准C的扩展。是Linux/Unix下最常用的C语言编译环境。如果读者比较熟悉标准C,掌握GNU C并不困难。当然,如果读者还不了解C语言,建议在阅读本书之前先学习一下C语言的相关知识(C语言的相关内容并不属于本书的讲解范围)。除了掌握GNU C外,还需要掌握一些与驱动相关的硬件知识,本书会在介绍特定驱动时介绍这部分知识。
为了测试Linux驱动在Android中的运行效果,最好准备一块开发板。当开发完成驱动程序后,需要在支持Android的开发板上测试驱动程序是否能正确地运行。本书建议采用比较流行的基于ARM11的开发板,例如,三星的S3C6410,或在S3C6410的基础上改进的其他开发板。如本书的驱动代码采用了飞凌的OK6410开发板进行测试。
当然,除了掌握学习Linux驱动的必要知识外,剩下的就是不断地练习了,因为实践是最好的老师。
最后总结一下学习Linux驱动要做些什么。
准备一个自己熟悉的Linux操作系统,用于开发和测试Linux驱动,建议使用Ubuntu Linux 10.04及以上版本。准备一块开发板(建议采用基于ARM11的开发板)。学习GNU C。学习相关的硬件知识。不断地实践。
文章
Ubuntu · Linux · Android开发 · C语言 · 数据安全/隐私保护 · 程序员 · 虚拟化 · Unix
2017-05-02
《Linux C编程从入门到精通》——第 2 章 在Linux中编写C语言代码 2.1Linux中C语言程序开发流程和工具介绍
本节书摘来自异步社区《Linux C编程从入门到精通》一书中的第2章,第2.1节,作者:宋磊 , 程钢著,更多章节内容可以访问云栖社区“异步社区”公众号查看
第 2 章 在Linux中编写C语言代码
Linux作为一个操作系统,一项重要的功能就是要支持用户编程。传统的UNIX下的程序开发语言是C语言,C语言是一种平台适应性强、易于移植的语言。Linux是用C语言写成的。反过来,Linux又为C语言提供了很好的支持,C语言编译工具gcc、调试工具gdb属于最早开发出来的一批自由软件。因此Linux与C语言形成了完美的结合,为用户提供了一个强大的编程环境,本章将介绍在Linux中编写C语言程序的流程和具体方法。
2.1 Linux中C语言程序开发流程和工具介绍
2.1.1 C语言程序开发流程
在Linux中开发一个C语言应用程序的流程如图2.1所示,其中每个环节的详细说明如下。
需求分析,算法设计。先根据应用代码要实现的功能进行需求分析,并且根据需求设计出相应的算法。
程序代码编辑。在文本编辑器中输入C程序源代码并保存。
编译。把源程序编译成目标程序,并且检查其中的语法错误,如果其中有语法错误,则需要返回修改程序代码,然后再次编译。
功能逻辑调试。语法没有错误并不代表程序代码就没有错误,此时的代码并不一定能实现预先设定的功能,必须进行相应的功能逻辑测试,以确定达到了预定的目标,此时可能会借助一些调试工具或者调试手段。如果没能达到预期的目标则需要返回程序代码编辑阶段修改代码。
链接并生成可执行文件。在确定代码编写已经没有问题之后,需要通过链接生成对应的可执行文件。
2.1.2 C语言的开发工具Linux为软件开发者提供了强大的C语言开发环境和丰富的开发维护工具,熟悉并掌握这些工具是进行Linux平台软件开发的必要条件。
编辑工具。Linux系统提供了许多文本编辑程序,比较常用的有vim和emacs等。此外,本书所介绍的Ubuntu等发行版,还自带了gedit等编辑器,它们都可以用来编辑C语言源程序。
编译工具。Linux带有功能强大的符合ANSI C标准的编译系统gcc,利用gcc可以编译C/C++语言源程序。
调试工具。利用Linux带的调试工具gdb,可以调试C语言程序。
维护工具。make程序可以对程序源文件进行有效的管理。
集成开发环境(IDE)。如果读者在Windows系统中做过开发,则一定不会对IDE感到陌生。在Linux下也有许多IDE可以用来开发C程序,如CodeBlocks、CodeLite、Anjuta、Eclipse等。其中CodeBlocks、CodeLite与Windows系统中的Visual Studio界面非常类似,比较容易上手。
Linux还提供了其他一些可以用于辅助设计和调试的工具,读者可以仔细研究。
文章
算法 · Linux · 开发工具 · C语言 · Windows · IDE · NoSQL · C++ · Ubuntu · Android开发
2017-05-02
《Linux C编程从入门到精通》一第2章 在Linux中编写C语言代码2.1 Linux中C语言程序开发流程和工具介绍
本节书摘来自异步社区《Linux C编程从入门到精通》一书中的第2章,第2.1节,作者 宋磊 , 程钢,更多章节内容可以访问云栖社区“异步社区”公众号查看
第2章 在Linux中编写C语言代码
Linux C编程从入门到精通Linux作为一个操作系统,一项重要的功能就是要支持用户编程。传统的UNIX下的程序开发语言是C语言,C语言是一种平台适应性强、易于移植的语言。Linux是用C语言写成的。反过来,Linux又为C语言提供了很好的支持,C语言编译工具gcc、调试工具gdb属于最早开发出来的一批自由软件。因此Linux与C语言形成了完美的结合,为用户提供了一个强大的编程环境,本章将介绍在Linux中编写C语言程序的流程和具体方法。
2.1 Linux中C语言程序开发流程和工具介绍
Linux C编程从入门到精通
2.1.1 C语言程序开发流程
在Linux中开发一个C语言应用程序的流程如图2.1所示,其中每个环节的详细说明如下。
图2.1 Linux中的C语言程序开发流程
需求分析,算法设计。先根据应用代码要实现的功能进行需求分析,并且根据需求设计出相应的算法。程序代码编辑。在文本编辑器中输入C程序源代码并保存。编译。把源程序编译成目标程序,并且检查其中的语法错误,如果其中有语法错误,则需要返回修改程序代码,然后再次编译。功能逻辑调试。语法没有错误并不代表程序代码就没有错误,此时的代码并不一定能实现预先设定的功能,必须进行相应的功能逻辑测试,以确定达到了预定的目标,此时可能会借助一些调试工具或者调试手段。如果没能达到预期的目标则需要返回程序代码编辑阶段修改代码。链接并生成可执行文件。在确定代码编写已经没有问题之后,需要通过链接生成对应的可执行文件。
2.1.2 C语言的开发工具
Linux为软件开发者提供了强大的C语言开发环境和丰富的开发维护工具,熟悉并掌握这些工具是进行Linux平台软件开发的必要条件。
编辑工具。Linux系统提供了许多文本编辑程序,比较常用的有vim和emacs等。此外,本书所介绍的Ubuntu等发行版,还自带了gedit等编辑器,它们都可以用来编辑C语言源程序。编译工具。Linux带有功能强大的符合ANSI C标准的编译系统gcc,利用gcc可以编译C/C++语言源程序。调试工具。利用Linux带的调试工具gdb,可以调试C语言程序。维护工具。make程序可以对程序源文件进行有效的管理。集成开发环境(IDE)。如果读者在Windows系统中做过开发,则一定不会对IDE感到陌生。在Linux下也有许多IDE可以用来开发C程序,如CodeBlocks、CodeLite、Anjuta、Eclipse等。其中CodeBlocks、CodeLite与Windows系统中的Visual Studio界面非常类似,比较容易上手。Linux还提供了其他一些可以用于辅助设计和调试的工具,读者可以仔细研究。
文章
算法 · Linux · 开发工具 · C语言 · Windows · IDE · NoSQL · C++ · Ubuntu · Android开发
2017-05-02
linux环境开发私房菜
1,各种linux 平台GUI开发IDE环境
2,C/C++ 好的编译器 gcc/emcs;
文章
Linux · C++ · 编译器 · C语言 · 开发工具 · IDE
2015-03-20
15款免费IDE,推荐给开发者
本文为您推荐大量的开源、免费的IDE,精选15个免费IDE,推荐给大家。列表如下:
Komodo Edit(Windows, Mac, Linux)
Komodo IDE可以在Windows、Mac OS X 和 Linux上运行,并支持通用的开源语言——Perl、PHP和Ruby。代码智能引擎非常可靠。它扫描所有语言安装找到定制扩展,比如PEAR模块。在项目方面,它支持与CVS、Subversion和Perforce的集成,也允许直接向服务器FTP传递代码。
Aptana Studio(Windows, Mac, Linux)
Aptana是一个非常强大、开源的专注于Ajax开发的开发工具。
Code::Blocks(Windows, Mac,Linux)
Code::Blocks(codeblocks)是一个开源、免费、跨平台的c++IDE。官方网站上称其能满足最苛刻的用户的需求。虽有点夸张,但既然敢这样说,也说明它的功能肯定不差。可扩展插件,有插件向导功能,让你很方便的创建自己的插件。Code::Blocks是用c++编写的(用wxWidgets库),捆绑了MinGW编译器。
Eclipse (Windows, Mac, Linux)
Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。
CodeLite(Windows,Mac,Linux)
CodeLite IDE是一个强大的开源,跨平台的C/C++整合开发环境.支持包括 Windows、Linux和Mac系统下运行。
亮点:
1.代码自动完成功能很强大
2. 仿VS,很容易上手
3. 界面更友好
4. 与Subversion集成
5. 与wxFormBuilder集成
6. 函数跳转功能强大
Visual Studio Express(Windows)
VS的轻型版本,功能也很强大。
NetBeans (Windows, Mac, Linux)
NetBeans是Sun公司的开源软件开发集成环境,是一个开放框架,可扩展的开发平台,可以用于Java,C/C++,PHP等语言的开发,本身是一个开发平台,可以通过扩展插件来扩展功能。
Xcode(Mac)
Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X的应用程序。
MochaCode(Mac)
MochaCode是一个Mac平台下的Java和Cocoa混合程序开发工具。
Geany(Windows, Mac, Linux)
Geany是一个小型的C代码编辑器,使用 GTK2 开发的开发环境。包括语法高亮、代码自动完成、调用提示以及支持其他类型语言的文件包括: C, Java, PHP, HTML, DocBook, Perl, LateX, and Bash), and symbol lists.
PSPad(Windows)
PSPad是一个Windows平台上免费的适合程序员使用的编辑器。它可以让你保持上一次编辑状态,这样在你下次打开编辑器的时候可以直接显示原来的文件。此外它还支持通过FTP进行远程编辑,支持多文件的比较等。
Anjuta DevStudio (Linux)
Anjuta是一个C/C++ IDE,它最大的特色是灵活,同时打开多个文件,内嵌代码级的调试器(调用gdb),应用程序向导(Application widzards)可以方便的帮助你创建GNOME程序而不需要你自己写一些与你兴趣无关的代码。
KDevelop(Windows, Mac, Linux)
KDevelop-Project诞生于1998年,其目的是为KDE提供一个易用的集成开发环境(Integrated Development Environment)。此后,KDevelop IDE采用GPL进行发布, 它支持很多程序设计语言,比如C, C++, Fortran, Java, Pascal, Perl, PHP, Python,以及Ruby等。
Notepad++(Windows)
Notepad++是在微软视窗环境下的一个免费的代码编辑器。
ConTEXT(Windows)
与Notepad++类似,ConTEXT是个高级文本编辑器。功能包括多语言界面、语法高亮,你可存储代码模板、比较文件等等。
原文链接:http://www.oschina.net/news/16563/15-free-ides-for-developers
文章
Java · Linux · PHP · C++ · Windows
1970-01-01
Linux环境下如何编译C++程序
Linux环境下如何编译C++程序
前言
前段时间面试C++开发,总是被问其Linux编程.
虽然申请的不是服务器开发岗,但是都毫无例外的问我Linux,看来真的挺重要的.
虽然找工作已经告一段落了,但是学习不应该停下脚步。
趁着现在时间比较自由,恶补一波Linux吧。
从第一个小程序开始。
Hello,Linux!
打开终端,输入指令
[jason@localhost ~]$ vim hello.cpp
1
会进入一个vim编辑器,然后点击键盘上的insert健开始进入编辑模式,如书代码如下:
#include<iostream>
using namespace std;
int main(){
cout<<"Hello Linux"<<endl;
return 0;
}
1
2
3
4
5
6
点击Esc 键退出编辑模式,然后输入冒号和wq ,退出vim编辑器。
输入指令
[jason@localhost ~]$ g++ hello.cpp -o hello
[jason@localhost ~]$ ./hello
1
2
3
得到如下
至此,第一个Linux C++程序完成,打开一个新世界大门。
原文地址https://blog.csdn.net/CV_Jason/article/details/83004082
文章
Linux · 开发工具 · C++ · 小程序
2018-10-11
《嵌入式 Linux C 语言应用程序设计(修订版)》——第 2 章 嵌入式Linux C语言开发工具
本节书摘来异步社区《嵌入式 Linux C 语言应用程序设计(修订版)》一书中的第2章,作者:华清远见嵌入式培训中心,孙琼,更多章节内容可以访问云栖社区“异步社区”公众号查看
第 2 章 嵌入式Linux C语言开发工具
嵌入式 Linux C 语言应用程序设计(修订版)本章目标
任何应用程序的开发都离不开编辑器、编译器及调试器,嵌入式Linux的C语言开发也一样,它也有一套优秀的编辑、编译及调试工具。
掌握这些工具的使用是至关重要的,它直接影响到程序开发的效率。因此,希望读者能自己动手操作,切实熟练掌握这些工具的使用。通过本章的学习,读者将会掌握如下内容:
anniuC语言的产生历史背景
anniu嵌入式Linux下C语言的开发环境
anniu嵌入式Linux下的编辑器vi
anniu嵌入式Linux下的编译器GCC
anniu嵌入式Linux下的调试器GDB
anniu嵌入式Linux下的工程管理器make
anniu如何使用autotools来生成Makefile
anniu嵌入式Linux下的综合编辑器Emacs
文章
Linux · 开发工具 · C语言 · 编译器 · NoSQL
2017-05-02
linux 编程学习笔记(1)搭建c(c++)开发环境
前言
工作之后一直做.NET开发,Linux几乎不用。最近因为工作需要,要熟悉linux的基本管理和相关概念。练习命令的时候,转念一想,何不趁此机会学习下Linux下的C编程,一来完成工作任务,二来重新学习C语言,三来用代码来理解Linux系统的进程管理,文件管理,IO等一大堆概念从而提升linux的编程能力。一举三得,何乐而不为呢?
1.1 关于Linux下的C开发环境
我使用的Ubuntu 12.10,自带Gcc。对于初学者,我还是更倾向于VIM+GCC+gdb。有助于我们了解很多编译、链接、调试等细节。
当然,好的IDE,确实可以提高开发效率,有效的组织文件,方便调试。我这里使用的是Eclipse+cdt+g++ + gdb。显示google了一大堆资料,关于如何配置Eclipse开发c、c++程序,都很繁琐,而且很多文章的方法在Ubuntu 12.10上行不通。本篇文章的主要目的是将我实践的最简单的环境安装方法记录下来,没有在其他版本的系统上测试。
1.2 安装Eclipse进行c、c++开发
第一步安装Eclipse。执行命令sudo apt-get install eclipse。
执行命令后,系统会自动下载并安装java环境和Eclipse。
第二步,安装cdt。执行命令sudo apt-get install eclipse-cdt。
由于我已经下载并安装过,所以上图显示的内容比较少,如果你是第一次安装,系统会下载安装包并安装。
第三步,安装G++,执行命令sudo apt-get install g++。
整个安装过程就这么简单,下面我们启动Eclipse,新建项目。
我们看到有c/c++类型的项目供选择和配置。好了,现在可以开始linux C编程之旅了。
本文转自玄魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/archive/2013/04/15/3022929.html,如需转载请自行联系原作者
文章
Linux · Android开发 · C语言 · C++ · Ubuntu · Java · NoSQL · 开发工具 · IDE
2017-01-11
平头哥发布支持玄铁处理器Linux新版本,5大亮点速览
为了便于 CPU 评估,系统集成,快速上手玄铁处理器 Linux 操作系统,平头哥更新了玄铁处理器 linux 版本,结合 gitlab 开源 CI/CD 系统,对已发布到开源社区的玄铁架构 CPU 相关的生态软件形成持续保障。
目前 linux 支持的玄铁系列 CPU 有:
64位系列 (RISCV):
C910 三发射,深度乱序,12级流水线,搭载AI向量加速引擎的高性能多核处理器
32位系列:
C860 三发射,深度乱序,12级流水线,搭载AI加速引擎的高性能多核处理器
C810 双发射,乱序,10级流水线,高性能超标量处理器
C807 双发射,乱序,8级流水线,面向实时控制领域的高性能处理器。
详细的支持型号可在https://github.com/c-sky/buildroot/releases 用浏览器打开查看
更新后的玄铁处理器Linux有如下5大亮点:
一 、极简开发,轻松上手 对于嵌入式开发者来说,能有易于上手的开发环境,简单操作的系统是能够节省很多时间的。玄铁处理器 linux 开发平台是基于 buildroot.org 构建的,帮助开发者快速构建玄铁 CPU Linux 学习和实验环境,快速集成开源组件。
Buildroot 是一款简单,高效,易于使用的开源嵌入式linux 交叉编译开发平台(https://buildroot.org) ,每一款 CPU 提供了最小系统参考配置,通过https://github.com/c-sky/buildroot/releases 按季度进行发布,同时结合 gitlab 开源 CI/CD (持续集成/持续发布) 系统,保障发布给开源社区代码正确性。
玄铁 linux 开发平台融入代码仓库的动态 readme.txt 设计,将上手指引精确到每一个 config,逐行精简命令,一目了然(每一个步骤不超过 10 条命令,支持 'ctrl c' + 'ctrl v' 秒贴执行,极速上手)。在如下的演示环境动图中,最快用时不到15秒的时间,用户即可完成快速上手,进入极简开发的环境。
利用云上 CI/CD 系统,预先编译完成各个配置,并把结果存在云上,供开发者直接下载快速体验 linux 环境。其中 hw 目录下,存放着玄铁系列 CPU 最小系统硬件平台,包含 fpga, asic。
配合玄铁 CPU Jtag 调试器,提供清晰简洁的运行脚本,不浪费第一次上手玄铁 CPU 用户的一分一秒。
(具体请参考 readme.txt -> 'Quick Start for hw run' 章节)
二、软件丰富,定制灵活
通过开发平台,可获得:
linux 最小系统样例
Bootloader 和 Opensbi 样例
基于最小系统硬件,调试环境 (Jtag + DRAM + 网络)
基于 QEMU 的配套验证环境
丰富的诊断工具 (gdb, perf PMU state/record, ftrace, kprobe/uprobe, tracecmd + kernelshard, bpf 等)
一般来说,对于一个新的 CPU 体系架构,构建一套最小系统,要从基础编译器,内核,最小文件系统开始准备,费时耗力。玄铁 linux 开发平台通过一个配置,将工具链,内核,根文件系统的软件包集成在一起,一条简洁的命令就可以让开发者从源码级构建整个 linux 系统,非常方便!
配置图例
三、易于诊断,高效定位
玄铁处理器linux 诊断性工具众多,包含如下工具:
以 Perf, ftrace, K/Uprobe, stap, BPF tools 组合形成的 linux 性能分析,动态追踪,系统观测工具
以 GDB/KGDB/KDUMP 为代表的 交互式,在/离线调试工具
以 top/free/slabtop/iostat/iotop/netstat/sar 为代表的 linux 系统监控工具
在 v1.0.9 版本中,实现了玄铁 C800 CPU kprobe/uprobe 指令流插桩功能,即使在没有源码的情况下,也可以通过 perf probe, tracecmd 等前端工具,从容调试,极大提升开发效率。
支持 Perf stat/record + callchain (配合图形前端工具可生成火焰图,timechart ) 火焰图 timechart图
支持 Perf PMU 硬事件统计 & 采样,覆盖指令数/周期数/CACHE行为/TLB行为/LSU行为 等多个 CPU 内部模块,方便 CPU 评估,分析性能瓶颈,快速定位问题。
支持 ftrace 内核追踪框架
支持 kprobe/uprobe linux 动态追踪功能
支持 gdb,gdbserver,kdump,coredump 交互调试工具
支持 lockdep 内核死锁检查
支持 gcov 内核代码覆盖率统计
支持 strace 系统调用追踪
支持 mtrace (glibc) 内存泄漏分析
未来会持续完善 Linux 诊断性工具集,提供丰富的 Linux 诊断手段。
图片来源brendangregg.com
四、持续集成,质量保证
玄铁系列 CPU 已被众多开源生态软件支持,为了让用户在使用这些开源软件时,得到更好的保障,平头哥建立持续跟踪系统,确保开源软件在迭代过程中的质量。
在 gitlab 上构建了一个开源开放的 CI/CD 系统。它经历了1年多的运行与完善,累计执行数千次 pipeline 版本迭代,有效保障了开源社区 CPU 后端代码的质量。(https://gitlab.com/c-sky/buildroot/pipelines/charts)
五、源于开源,回馈社区
一款优秀的 CPU,离不开社区软件生态的支持,离不开积极参与 kernel.org 社区的开发,开发者也拥有自己的 mailing list:
linux-csky@vger.kernel.org (https://lore.kernel.org/linux-csky/),
并随着 linux 开发节奏,定期向 Linus Torvalds 先生发出来自中国 CPU 架构 的 pull-request。
看完是否已经迫不及待想试用了?复制链接https://github.com/c-sky/buildroot/releases即可查看。想要获取更多资料和信息可登陆OCC官网https://occ.t-head.cn/development/chip?spm=a2cl5.14300690.0.0.505f180fBqNOFx 下载。扫下方二维码加入平头哥芯片开放社区钉钉交流群,在群里发出的你的试用感慨与疑问,一起让玄铁处理器 Linux 工具跑得更顺畅。
作者:郭任编辑:琛琛
参考资料:
kernel.org
buildroot.org
brendangregg.com
文章
人工智能 · NoSQL · 前端开发 · Linux · 编译器 · 持续交付 · 开发者 · 芯片 · 异构计算 · 内存技术
2020-06-04
《Linux 高级程序设计(第三版)》——导读
**前言**Linux应用开发是目前最为广泛的软件开发内容之一,同时也是从事Linux内核及驱动开发的基础。《Linux高级程序设计》一书经过两次出版,收到了大量的读者来信,对本书提出了各种意见和建议,同时,随着技术的更新,新技术、新应用不断涌现,综合各方面的考虑,笔者做了大量的修订工作,推出了第三版。(1)内容丰富。本书是作者多年计算机教学及工程经验总结,整合了Linux应用编程的绝大多数知识点,几乎涵盖了Linux操作系统下C应用编程的所有内容,包括工具使用及环境设置、文件及文件管理、进程及进程管理、进程间通信、线程及线程管理、线程通信、网络及网络应用编程等知识点。
(2)循序渐进。本书在写作思路上避开了大量理论的介绍,按知识体系介绍→应用函数分析→应用案例开发的写作顺序,让读者在掌握具体知识点的同时可以掌握实例的具体实现。
(3)案例指导。本书中所有调用函数及引用都标出具体的出处(在Linux操作系统中的文件位置),读者可以一目了然地知道对应函数及类型的定义过程。另外,本书遵循案例教学思想,每一个知识点都讲解一个应用程序,且所有代码都在教学实践过程中调试通过,读者可以直接使用。
(4)紧扣应用。本书所列代码和实例都来源于具体的应用程序。
目录
[第1章 Linux下C语言开发环境1.1 Linux操作系统简介](https://yq.aliyun.com/articles/104850)1.2 Linux开发初步1.3 部分常用工具简介1.4 Linux下编码风格[第2章 Linux下C语言开发工具2.1 常用编辑工具](https://yq.aliyun.com/articles/104919)2.2 GCC/GDB编译调试工具基础
文章
Linux · C语言 · NoSQL · 开发工具
2017-05-02