易截截图软件、单文件、免安装、纯绿色、仅160KB

掌握Linux编程的10个步骤

做linux c语言开发有一小阵子了,在这边自己总结了些心得,相信能让不懂得Linux编程的人慢慢步入Linux殿堂。有任何不对或不准确之处欢迎讨论。
1. 安装 linux 操作系统
既然要学习linux下的c语言开发,那么安装个linux操作系统是必须的。建议安装Ubuntu,这是我目前见过界面最友好的linux操作系统了。关于如何使用Ubuntu以及在其上作开发,可参考我的另外一篇敝作《Ubuntu使用心得》:http://download.csdn.net/source/2206289
2. 熟悉 linux 操作系统下的命令
Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。
关于linux下的命令,欢迎参考我blog上一篇文章《Linux命令整理》:http://blog.csdn.net/sikinzen/archive/2010/04/19/5503769.aspx
3. 学会一种源码编辑器
很多大牛推荐使用 vim/emacs之类的工具,但我还是用着不习惯,应该是我能力未到。我个人比较喜欢的开发方式是:在windows下编辑代码,在linux下编译。
我自己非常喜欢用SourceInsight来编辑代码,这个工具的使用可参考我blog上一篇文章《Source Insight的应用技巧、宏功能》:http://blog.csdn.net/sikinzen/archive/2010/04/09/5468511.aspx
4. 掌握gcc和gdb
掌握gcc的基本用法,并且会用gdb来调试程序。
5. 用好 C 语言
工作中发现:C语言大家都会,但核心思想就不一定都能理会。我自己觉得也只是摸到了门径,还需要实践锻炼。
推荐:《C陷阱与缺陷》、《C专家编程》、《C程序设计语言》。
6. 学会写makefile,以及用它来组织源码
当项目大了后,用命令行逐个逐个编译、link文件的工作量是非常恐怖的,这时候make就起作用,即使是很小的项目,我认为也应该采用make组织。
关于makefile,请参考网上文章《跟我一起写Makefile》或《GNU make中文手册》。这两篇文章都相当得好。
7. Linux应用编程
终于说到正题了,呵呵。
Linux上的应用编程基本上两本书就搞定了:《APUE》和《UNP》,前者锻炼基本功,后者学习网络编程。
这边我直接引用网上某位先生的评论:
如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。 然后再看Douglus E. Comer的《用TCP/IP进行网际互


相关文档:

Linux下 zip 和 unzip的用法

     zip命令的基本用法是:zip [参数] [文件1] [文件2]
      简单的例子:
      把本目录下的test文件打包成test.zip文件:zip test.zip test/* ,如果在文件中用绝对的路径,那么在压缩文件中也是绝对路径。就是说,如果你 zip test.zip /hom ......

【Linux学习笔记】 常用命令1

格式:ls [options] [filename]
作用:显示目录内容,类似dos的dir
常用参数:
   -a 不隐藏任何以"."字符开始的文件
   -l 使用较长的格式显示信息
   -r 按照文件名的逆序打印输出
   -F 加上文件类型的指示符
格式:cat [options] [filename]
作用:显示文件的内容,是concat ......

linux链接文件

 链接文件有点类似于Windows 的所谓快捷方式,但并不完全一样。链接有两种方式,软链接和硬链接。
  软链接文件
  软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。链接文件甚至可以链接不存在的文件,这就产生一般称之为"断链"的问题(或曰“现 ......

linux api笔记(6):线程(四) 线程私有数据

本文将描述线程的一个比较重要的一方面:线程私有数据,如下代码:
#include <pthread.h>
#include <unistd.h>
#include <stdio.h>
pthread_key_t kKey = 0;
void * ThreadProc(void* arg)
{
char* a = (char*)(arg);
sleep(2);
pthread_setspecific(kKey, a);
......

linux api笔记(7):系统调用如何摆脱信号的干扰

在linux环境下编程有一个很让人头疼的问题就是信号对系统调用的干扰,在系统调用过程中如果受到信号的干扰,
部分系统调用会将errno设置成EINTR,我们不得不编写下面的错误处理代码来防止这种情况的发生:
syscall:
int ret = syscall(...);
if (ret < 0 && EINTER == errno)
goto syscall;
el ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号