一、工具的使用  1、学会使用vim/emacs,vim/emacs是 Linux下最常用的源码编辑具,不光要学会用它们编辑源码,还要学会用它们进行查找、定位、替换等。新手的话推荐使用vim,这也是我目前使用的文本编辑器。
2、学会makefile文件的编写规则,并结合使用工具aclocal、autoconf和automake生成makefile文件。
3、掌握gcc和gdb的基本用法。掌握gcc的用法对于构建一个软件包很有益处,当软件包包含的文件比较多的时候,你还能用gcc把它手动编译出来,你就会对软件包中各个文件间的依赖关系有一个清晰的了解。
4、掌握svn/cvs的基本用法。这是linux,也是开源社区最常用的版本管理系统。可以去试着参加sourceforge上的一些开源项目。
二、linux/unix系统调用与标准C库
系统调用应用软件与操作系统的接口,其重要性自然不用说,一定要掌握。推荐学习资料为steven先生的UNIX环境高级编程(简称APUE)。
三、库的学习
无论是在哪个平台做软件开发,对于库的学习都很重要,linux下的开发库很多,我主要介绍一下我常常用到的一些库。
1、glib库
glib 库是gtk+和gnome的基础库,并具是跨平台的,在linux、unix和windows下都可以用。glib库对于linux平台开发的影响就像 MFC对windows平台开发的影响一样,很多开源项目都大量的使用了glib库,包括gimp、gnome、gaim、evolution和 linux下的集群软件heartbeat.因为glib库自带有基本的数据结构实现,所以在学习glib库的时候可以顺便学习一下基本的数据结构(包括链表、树、队列和hash表)。
2、libxml库
libxml是linux平台下解析XML文件的一个基础库,现在很多实用软件都用XML格式的配置文件,所以也有必要学习一下。
3、readline库
readline 库是bash shell用的库,如果要开发命令行程序,那么使用readline库可以减少很多工作量,比如bash里的命令行自动补全,在readline里就已经有实现,当然你也可以用自己的实现替代库的行为。readline库有很多网站介绍的,只要google一下readline就可以找到一堆了。   4、curses库
curses 库以前是vi程序的一部分,后来从vi里提取出来成为一个独立的库。curses库对于编写终端相关的程序特别有用,比如要在终端某一行某一列定位输出,改变终端字体的颜色和终端模式。linux下的curses库用的是GNU实现的ncurses(new curses的意思)。
5、gtk+和KDE库
这两个库是开发GUI应用程序的基础库,现在linux下的大部份GUI程序都是基于这两个库开发的,对于它们 的学习也是很有必要的。
四、网络的学习
网络这个东西太宽了,推荐学习资料steven先生的UNIX网络编程(简称UNP)和TCP/IP协议详解,更进一步的话可以学习使用libnet编写网络程序。

转载于:https://blog.51cto.com/samyubw/282976

Linux下学C语言开发要学些什么‏相关推荐

  1. C语言学到什么程度可以找到工作呢?学完C语言之后要学些什么呢?

    经常有人私信问我:C语言学到什么程度可以找到工作呢?学完C语言之后要学些什么呢? 今天我就带大家了解一下 想要找一个开发桌面应用程序(QQ,酷狗.360.浏览器.暴风影音.微信.百度网盘等等),开发大 ...

  2. 计算机移动互联网是学什么,学移动互联网开发需要学些什么课程?

    说到移动互联网开发,大家对于移动互联网开发这个专业都是比较熟悉的吧?现在学习移动互联网开发的同学也是有很多的,有部分同学并不怎么了解移动互联网开发,那么学移动互联网开发需要学些什么课程?下面大家就一起 ...

  3. GCC编译器简明教程(Linux下C语言开发环境的搭建)

    GCC编译器简明教程(Linux下C语言开发环境的搭建) 市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核.桌面环境(例如GNOME.KDE.Unity等)和各种常用的必 ...

  4. 关于Linux下C语言开发基础的实验内容。

    Linux下C语言开发基础实验内容 目录 1.Linux下C语言开发流程 2.vi,vim编辑器的使用 3.Gcc编译器的使用 总体选项: 警告选项: 4.GDB 基本命令的使用 5.Make 工程管 ...

  5. Linux下C语言开发(信号signal处理机制)

    信号signal处理是Linux程序的一个特色,用信号处理来模拟操作系统的中断功能,对于系统程序员来说是最好的一个选择了.同样信号处理也是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概 ...

  6. 嵌入式 linux 应用 go 语言开发(开篇,缘起)

    go语言被称作互联网时代的c语言,用来开发嵌入式linux是一种享受. 希望能否带来开发工作效率的提升,产品质量稳定性方面的提升,产品功能上的增强. 物联网时代,就是要有所"变革" ...

  7. python全栈开发要学些什么_python全栈工程师学些什么

    全栈工程师是指掌握python各项技术,并能独立完成产品的人. python全栈工程师使用python相关工具和知识完成从前端页面的实现,到后台代码的编写,再到数据库的管理,一人可以搞定一个公司网站的 ...

  8. Linux的C语言开发工具——通过进度条小程序学习使用gcc、gdb和make/Makefile工具

    C语言实现进度条程序--gcc.gdb和make工具的使用 一.Linux下的进度条程序实现 二.Linux编译器-gcc 2.1 预处理(进行宏替换) 2.2 编译(生成汇编) 2.3 汇编(生成机 ...

  9. python全栈开发要学些什么_如何迅速学习Python 全栈开发?

    零基础学习开始学习Python 肯定难,Python的专业程度本身就不简单,学习这事本来就是一件非常煎熬的事情,人都不愿意学习,可是没办法,为了生存掌握一个技能,你必须学,如果你认真的对待,你就找不到 ...

最新文章

  1. 还没用上 JDK 11吧,JDK 12 早期访问构建版使用
  2. C++ STL标准模板库(stack)
  3. [转]ESP8266使用详解
  4. cookie的相关知识
  5. spring el表达式 if else_Spring 获取单例流程(二)
  6. epoll边缘触发_4.2.3、epoll:水平触发与边缘触发
  7. 支付宝工程师创造出了一个可以“拷贝”支付宝的神器
  8. 面试篇------性能测试+调优
  9. 聊天窗口,新加的内容直接 往上顶
  10. 苹果手机关闭自动更新_苹果手机会quot;偷钱quot;的2个功能,越早关闭越好,不然经常无故被扣钱...
  11. 修改分值,总分不能超过100
  12. 图像处理-RGB彩色图像均衡化处理
  13. yacc语法学习-part1
  14. RGBA转换成RGB
  15. 2022 MegCup | 小模型盲降噪怎么比?资深炼丹师给你赛前指导!
  16. hdu 1728 逃离迷宫
  17. win7快速启动栏计算机,没有快速启动栏?Win7任务栏功能更丰富
  18. 【改变思路】中式英语解决之法
  19. mathtype中如何添加一个圆圈中间一个减号的符号
  20. 什么样的耳机戴着舒服些、最好用的的几款骨传导蓝牙耳机推荐

热门文章

  1. express添加权限拦截
  2. Fluent Ribbon 第三步 应用程序菜单
  3. 个人博客作业第三周--必应词典分析
  4. linux网口驱动实现(待续)
  5. 用母函数的思路解释母函数的代码
  6. 线程间操作无效,从不是创建控件的线程访问它。
  7. cache:缓存在asp.net中如何管理?服务器端缓存?Session, Application, Cache objectscache ,客户端缓存?Cookies,ViewState...
  8. 有什么好的Java自学教程视频,适合初学者
  9. python 全栈开发,Day116(可迭代对象,type创建动态类,偏函数,面向对象的封装,获取外键数据,组合搜索,领域驱动设计(DDD))...
  10. bootstrap bootstrapTable 隐藏列