Linux
文章平均质量分 87
edisonlg
这个作者很懒,什么都没留下…
展开
-
Linux Shell简介
第一篇:超级工具/Terminals,xterms 和 Shells一、超级工具二、为了说明 shell ,这里需要一些背景知识。1、Terminals, xterms 与 Shells2、终端(Terminals)3、xterms4、Shells三、Shell 起步第二篇:自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式一、转载 2011-12-25 14:17:34 · 704 阅读 · 0 评论 -
select, poll和epoll的区别
select()系统调用提供一个机制来实现同步多元I/O:#include sys/time.h>#include sys/types.h>#include unistd.h>int select (int n,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct time转载 2012-04-25 18:37:32 · 726 阅读 · 0 评论 -
Linux常用命令
查看系统版本:uname -alsb_release -acat /etc/lsb-releasecat /etc/issuecat /proc/version查看硬件信息:lshw -shortlshw -class memory // 显示指定硬件信息lspci -v // 查看PCI信息,可以查到显卡,声卡等的信息通过/proc文件查看:cp原创 2012-02-01 12:58:22 · 587 阅读 · 0 评论 -
Linux的进程编程-之一-基本概念
1 进程的基本概念1.1 进程状态和状态转换进程在Liunx系统中的各种状态:1.用户状态 :进程在用户状态下的运行状态。2.内核状态 :进程在内核状态下的运行状态。3.内存中就绪 :只要内核调度它,就可以执行。4.内存中睡眠 :5.内存外就绪 :进程处于就绪状态,但是必须把它放入内存,内核才能调度它执行。6.内存外睡眠 :原创 2012-01-02 16:58:30 · 1127 阅读 · 0 评论 -
Linux中库的生成和使用
1 库的生成和使用库可以有三种使用的形式:静态、共享和动态。静态库的代码在编译时就已载入到开发人员开发的应用程序中。而共享库在程序开始运行时才载入,在编译时只是简单地指定需要使用的库函数。动态库则是共享库的另一种变化形式,动态库也是在程序运行时载入,但与共享库不同的是,程序中使用到的库函数不是在程序开始运行时,而是在程序中的语句需要使用该函数时才载入。动态库可以在程序运行期间释放动态库所原创 2012-01-03 00:08:16 · 878 阅读 · 0 评论 -
Linux的线程编程
1 线程的基本概念Linux下的线程在内核是作为共享存储区、共享文件系统、共享信号处理、共享文件描述符,拥有独立进程表项的独立进程看待的,而线程的创建、同步、删除等操作都在核外进行。编写Linux下的线程程序,需要包含头文件,链接时需要使用库libpthread.a。2 线程的使用2.1 线程的创建intpthread_create( pthrea原创 2012-01-03 00:06:28 · 1504 阅读 · 0 评论 -
Linux的进程编程-之二-进程间通信(消息队列)
1.1 系统V消息队列消息队列中的每个消息都有如下的数据结构:struct msgbuf{long mtype; // 消息类型char mtext[n]; // 消息内容,n由用户自己定义};1.1.1 ftok( )#include#includekey_tftok( const char *name原创 2012-01-02 17:07:45 · 4194 阅读 · 0 评论 -
Linux的进程编程-之二-进程间通信(定时器)
1.1 定时器-Timer1.1.1 Timer的创建和删除1.1.1.1 timer_create( )#include#includeinttimer_create( clockid_t clockid, struct sigevent *event, timer_t *timerid );timer不能够被子进程从父进程中继承,而且原创 2012-01-02 17:03:38 · 916 阅读 · 0 评论 -
Linux的进程编程-之二-进程间通信(管道)
1.1 管道管道可用于具有亲缘关系(父子进程或者兄弟进程)之间的通信,管道具有以下特点:1.管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;2.管道对于两端的进程而言,就是一个文件,但它不属于文件系统,只存在于内存中;3.每次写入的内容都添加在管道缓冲区的末尾,每次都是从管道缓冲区的头部读出数据;4.管道没有名字;5.管道缓冲区是原创 2012-01-02 17:02:45 · 859 阅读 · 0 评论 -
Linux的进程编程-之二-进程间通信(信号)
1 Linux进程间通信linux下的IPC基本上是从Unix上的IPC继承而来的。而Unix的两大主力AT&T的Bell Lab及BSD在IPC方面的侧重点有所不同。AT&T对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;BSD则跳过了该限制,形成了基于套接口(socket)的进程间通信机制。Linux则把两者继承了原创 2012-01-02 17:01:14 · 2624 阅读 · 0 评论 -
Linux的进程编程-之二-进程间通信(信号灯-Semaphore)
1.1 Posix信号灯-Semaphore信号灯有以下两种类型:二值信号灯:信号灯的值只能取0或1。计算信号灯:信号灯的值可以取任意非负值。每个信号灯都对应一个struct sem结构:struct sem{unsigned shortint semval // 信号灯值pid_t原创 2012-01-02 17:04:38 · 1577 阅读 · 0 评论 -
gcc和gdb使用手册
gcc常用参数-c:到组译阶段停止,输出一个与源文件名相符的目标文件。-Dmacro:相当于在程序中添加:#define macro 1-Dmacro=defn:相当于在程序中添加:#define macro defn。-g:将调试信息加入目标文件中,可以使用gdb调试器。-include:编译器先处理该参数指定的文件,并将此文件经过预处理后,加入源文件内。-Idir:设置原创 2012-01-02 16:56:28 · 881 阅读 · 0 评论 -
Makefile的学习笔记
1 MakefileGNU make的工作分为两个阶段。在第一阶段,make读取makefile文件、内置变量及其值、隐含规则和具体规则、构造所有目标的依赖关系以及所有目标各自的依赖等。在第二阶段,make决定需要重新构造的目标并使用必要的规则进行工作。make工作第一阶段发生的扩展是立即扩展,直接把变量和函数扩展为makefile文件语句的一部分。make工作第二阶段发生的扩展称为原创 2012-01-03 00:07:32 · 28415 阅读 · 5 评论 -
Linux常用命令
压缩备份bzip2功能说明:.bz2和.bz文件的压缩程序。实际上bunzip2是bzip2的硬链接,因此不论是压缩或解压缩,都可通过bzip2指令完成。语法:bzip2 [-options][文件…]-d 解压缩文件。-z 压缩文件。-f 生成文件覆盖同名文件-k 保留原始文件(默认只保留生成的文件)。-t 测试.bz2压缩文件的完整性。原创 2012-01-02 17:12:56 · 729 阅读 · 0 评论 -
Linux的进程编程-之二-进程间通信(共享内存)
1.1 共享内存共享内存是最有用,也是最快的IPC方式。有三种实现共享内存的方法:系统调用mmap( )、POSIX共享内存、系统V共享内存。三者都是先将文件映射到物理内存页面中,然后各个进程再把物理内存页面映射到本进程的地址空间中,从而实现进程间通信。所不同的是mmap( )映射的是普通文件;而系统V映射的是特殊文件系统shm中的文件,文件系统shm安装在交换分区上,系统原创 2012-01-02 17:09:35 · 954 阅读 · 0 评论 -
Vi使用手册
模式选择a插入模式(在当前字符后面)i插入模式(在当前字符前面)RReplace模式o插入新的一行,从行首开始输入翻页操作向上翻半页向下翻半页向后翻一页向前原创 2012-01-03 00:06:42 · 860 阅读 · 0 评论 -
Linux的网络编程
对于多字节数据在内存中有两种存储方式:Little-endian:低字节在前,高字节在后;Big-endian:高字节在前,低字节在后网络协议在处理多字节整数时,采用的是高端字节序,在编程时一定要考虑主机字节顺序与网络字节顺序的相互转换。1 socket定义socket是一种文件描述符。常用的socket类型有两种:流式socket(SOCK_STREAM)和数据报式原创 2012-01-02 17:14:09 · 1877 阅读 · 0 评论