学习Unix/Linux编程要学些什么

本文分享了《Unix/Linux编程实践教程》一书的学习心得,该书通过剖析Unix/Linux常用命令的实现原理,深入浅出地介绍了系统编程的基础知识。主要内容包括C语言编程、文件读写、设备操控、信号机制、进程与线程管理及Socket网络编程等。

最近利用空余时间看了一下《Unix/Linux编程实践教程》,原书名为:Understanding Unix/Linux Programming: A Guide to Theory and Practice。感觉这本书写的还是不错的,讲的Unix/Linux系统编程,主要是通过讲解Unix系统上的命令程序是如何实现的来分析了Unix系统的原理和系统编程。比如讲解了who,cp,ls,pwd等命令用Unix C语言应该怎么实现。通过这种讲解方式,不仅学会了Unix的系统编程,而且还弄懂了Unix操作系统的一些原理性的东西。感觉写的非常不错。

那么,Unix/Linux下的系统编程要学哪些东西呢?通过本书,感觉主要学习一下内容:

1。Unix/Linux 下基本的C语言编程,包括基本编辑工具的使用,vim,Emacs等任意一种,gcc,gdb等编译调试工具的使用,以及Unix系统下的基本命令的使用以及C语言基本语法。也就是要能够在Unix系统下能使用开发工具写出最基本的c语言程序。

2。文件的读写(read,write,close以及文件描述符和文件属性的理解),目录的操作,以及对应于这些系统调用的c库函数。

3。设备的操控(在Unix中,设备是作为文件来操作的,提供了与文件一致的操作接口)。I/O重定向。

4。信号机制(signal)。

5。进程的创建,执行(fork,exec,exit,wait,pipe等),进程之间的通信(IPC:文件/命名管道/共享内存/Socket/信号量)

6。线程的使用(pthread_create, pthread_join, pthread_mutex_lock, pthread_mutex_unlock, pthread_cond_wait, pthread_cond_signal)

7。Socket网络编程。(socket, bind, listen, accept, sendto, recvfrom),理解网络编程的模型。(同步与异步I/O)

对于这些知识,不仅仅是学会这些系统或者函数调用,跟重要的是理解其编程模型。然后就是结合实际需求,利用这些基本知识进行开发了。很多时候,解决实际问题的方法比这些东西更重要,但是,这些基本知识是你开发的必备知识。

最后,推荐想学习Unix或者Linux编程的一定要看看这本书。另外,如果要做应用开发的话,可以再学习一下GUI开发(GTK++或者Qt)。

转载于:https://www.cnblogs.com/gaojing/archive/2010/06/11/1756581.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值