
Linux
郁闷阳光
作为码农,建此博客的目的是记录工作历程中的点点滴滴,分享工作中的感悟、思考。
展开
-
Makefile全解析
什么是 makefile 或许很多 Winodws 的程序员都不知道这个东西,因为那些 Windows的 IDE 都为你做了这 个工作,但我觉得要作一个好的和 professional 的程序员,makefile 还是要懂。这就好像现在有这么多的 HTML 的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML 的标识的含义。特别在 Unix 下的软件编译,你就不能不自己写 makef转载 2011-12-09 14:53:12 · 342 阅读 · 0 评论 -
五种I/O 模式
1.阻塞I/O 模式是最普遍使用的I/O 模式。大部分程序使用的都是阻塞模式的I/O 。缺 省的,一个套接字建立后所处于的模式就是阻塞I/O 模式。 对于一个UDP 套接字来说,数据就绪的标志比较简单: l 已经收到了一整个数据报 l 没有收到。 而TCP 这个概念就比较复杂,需要附加一些其他的变量。 在图6-4 中,一个进程调用recvfrom ,然后系统调用并不返回知道有数据报到达转载 2012-06-12 11:12:20 · 730 阅读 · 0 评论 -
linux下的C语言编程(总结篇)
在Linux下面关于C语言的内容其实挺多的。不同的人关注的地方也不一样。关注系统设计的人可能更关注整个linux系统的结构;设计驱动的人可能更关注linux驱动的配置和实现;而我在这里所关注的只是linux应用层方面的内容,属于最基础的内容,当然也是最重要的内容。实际上对应于C语言的理解在很大程度上决定了你对整个计算机系统的理解程度。从本质上说,linux和windows的区别其实远没有外界想象的转载 2012-02-22 08:57:09 · 380 阅读 · 0 评论 -
Linux日知录(常用问题笔记)
0)序言 日有一知,当有一录,自09年来,工作所需,接触开源平台,对Linux常有涉猎,其间问题,记录在案,虽为敝帚,不敢自珍,所记条目,并未严格整理,但愿于后来者有所裨益. 1)常用 查看某个命令的路径 which:查看某个命令的路径,该命令在PATH变量配置的路径中寻找命令,并给出第一个查询结果返回 查看用户信息的几种方法 finger转载 2011-12-15 17:34:08 · 349 阅读 · 0 评论 -
Linux进程间通信——消息队列
消息队列是消息的链接表,包括Posix消息队列system V消息队列。消息队列用于运行于同一台机器上的进程间通信,它 和管道很相似,有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了 信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。 我们可以用流管道或者套接口的方式来取代它。 查询系统消息队列:ipcs -q转载 2011-12-09 15:04:01 · 404 阅读 · 0 评论 -
使用GDB 调试多进程程序
GDB 是 linux 系统上常用的 c/c++ 调试工具,功能十分强大。对于较为复杂的系统,比如多进程系统,如何使用 GDB 调试呢?考虑下面这个三进程系统: 进程 Proc2 是 Proc1 的子进程,Proc3 又是 Proc2 的子进程。如何使用 GDB 调试 proc2 或者 proc3 呢? 实际上,GDB 没有对多进程程序调试提供直接支持。例如,使用GDB调试转载 2011-12-09 14:59:55 · 344 阅读 · 0 评论 -
Linux系统调用
所谓系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。例如用户可以通过进程控制相关的系统调用来创建进程、实现进程调度、进程管理等。 在这里,为什么用户程序不能直接访问系统内核提供的服务呢?这是由于在 Linux 中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运转载 2011-12-09 14:51:10 · 401 阅读 · 0 评论 -
Linux定时器的使用
使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,使用alarm定时发出一个信号,还有那就是用gettimeofday, difftime等自己来计算时间间隔,然后时间到了就执行某一任务,但是这种方法效率低,所以不常用转载 2011-12-09 15:03:33 · 385 阅读 · 0 评论 -
Linux串口编程
串口简介 串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该标准规定采用一个 2转载 2011-12-09 14:49:55 · 366 阅读 · 0 评论 -
Linux Shell编程基础
linux系统下给命令指定别名alias命令用法: 在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名。虽然可以为命令建立“链接”解决长文件名的问题,但对于带命令行参数的命令,链接就无能为力了。而指定别名则可以解决此类所有问题。只要举一些例子就可以了: alias l='ls -l' ;用 l 代替 ls -l 命令(Xenix 下就有类似的 l 命令)转载 2011-12-09 15:05:02 · 428 阅读 · 0 评论 -
VIM常用指令
vim指令比较多,在用的时候老是忘记,从网上找到了这个表格,保存下来,以便用到的时候查阅。 一般模式: 移动光标 h 或 向左方向键 光标向左移动一个字符 j 或 向下方向键 光标向下移动一个字符 k 或 向上方向键 光标向上移动一个字符转载 2011-12-09 15:02:23 · 367 阅读 · 0 评论 -
Linux常用操作
显示文件内容more less head tail cat pg(分页) 查看文件cat 文件拼接合并:cat 文件1 文件2 > 输出文件 查找文件内容grep [选项] 字符串 文件列表 对文件内容排序sort 比较文件内容comm(排好序的文件) diff -b忽略空格 -B忽略空行 -i忽略大小写 结果中:第二个文件 显示日历转载 2011-12-09 15:01:53 · 379 阅读 · 0 评论 -
细说shell编程
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对转载 2012-06-18 16:29:52 · 656 阅读 · 0 评论