zoukankan      html  css  js  c++  java
  • 学习Unix/Linux编程要学些什么

    最近利用空余时间看了一下《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)。

  • 相关阅读:
    linux 共享内存 信号量 同步
    进程间通信 共享内存
    linux 多进程绑定问题
    C 语言调用python 脚本函数
    C 语言 和 python 调用 .so 文件
    好好学习
    three.js
    AMD、CMD、UMD 模块的写法
    webpack查缺补漏
    什么是 Web 服务器(server)
  • 原文地址:https://www.cnblogs.com/gaojing/p/1756581.html
Copyright © 2011-2022 走看看