
Linux基础摘要
zhuky
执着 追求
从事于嵌入式软件开发。具体产品:智能家居、数码相框、机顶盒、PMP等
展开
-
Linux系统网络服务器
Linux系统网络服务器模型主要有两种:并发服务器和循环服务器。所谓并发服务器就是在同一个时刻可以处理来自多个客户端的请求;循环服务器是指服务器在同一时刻指可以响应一个客户端的请求。而且对于TCP和UDP套接字,这两种服务器的实现方式也有不同的特点。 1、TCP循环服务器:首先TCP服务器接受一个客户端的连接请求,处理连接请求,在完成这个客户端的所有请求后断开连接,然后再接受下一个客户端的请求转载 2009-10-14 13:18:00 · 527 阅读 · 0 评论 -
linux 时间&定时器 介绍
1.时间表示 在程序当中,我们经常要输出系统当前的时间,比如我们使用date命令的输出结果.这个时候我们可以使用下面两个函数: #include time_t time(time_t *tloc); char *ctime(const time_t *clock); time函数返回从1970年1月1日0点以来的秒数.存储在time_t结构之中.不过这个函数的返回值对于我们来说没有什么实原创 2009-12-16 14:16:00 · 2602 阅读 · 0 评论 -
linux 线程编程
本章介绍 POSIX 线程的基本线程编程例程。本章介绍缺省线程(即,具有缺省属性值的线程),这是多线程编程中最常用的线程。本章还介绍如何创建和使用具有非缺省属性的线程。本章介绍的 POSIX 例程具有与最初的 Solaris 多线程库相似的编程接口。线程库下面简要论述了特定任务及其相关手册页。 创建缺省线程如果未指定属性对象,则该对象为 NULL,系统会创建具有以下属性转载 2009-12-16 15:00:00 · 7057 阅读 · 2 评论 -
万能Makefile
####################################### # Generic makefile # # by George Foot # email: george.foot@merton.ox.ac.uk # # Copyright (c) 1997 George Foot # All rights reserved. # # No warranty, no liabili转载 2009-12-18 09:28:00 · 580 阅读 · 0 评论 -
关于gcc扩展中的宏定义中用 "#" 和 "##"
关于gcc扩展中的宏定义中用 "#" 和 "##"今天测试了宏定义中的 "#" 和 "##" 的区别。结果如下:"#" 代表和一个字符串相连接"##" 代表和一个符号连接,符号可以是变量,或另一个宏符号。举例如下:宏定义如下(1)#define DEV_FILE_NAME "/dev/test_kft"#define OPEN_FILE(fd, n) /转载 2009-12-18 09:34:00 · 627 阅读 · 0 评论 -
缓冲区溢出原理学习
什么是缓冲区溢出? 缓冲区,简单说来是一块连续的计算机内存区域, 可以保存相同数据类型的多个实例。动态变量在程序运行时定位于堆栈之中。 我们这里只关心动态缓冲区的溢出问题, 即基于堆栈的缓冲区溢出。 进程的内存组织形式 一个进程在内存中被分成三个区域: 文本, 数据和堆栈。 文本区域是由程序确定的, 包括代码(指令)和只读数据。 该区域相当于可执行文件的文本段。 这个区域通常被标转载 2009-12-18 09:35:00 · 699 阅读 · 0 评论 -
shell判断文件,目录是否存在或者具有权限
shell判断文件,目录是否存在或者具有权限 #!/bin/sh myPath="/var/log/httpd/"myFile="/var /log/httpd/access.log"#这里的-x 参数判断$myPath是否存在并且是否具有可执行权限if [ ! -x "$myPath"]; thenmkdir "$myPath"fi#这里的-d 参数判断$myPath是否存在if转载 2009-12-18 09:39:00 · 603 阅读 · 0 评论 -
Linux内核同步,进程,线程同步
包括我自己在内,很多人对内核,进程,线程同步都不是很清楚,下面稍微总结一下: 内核同步:主要是防止多核处理器同时访问修改某段代码,或者在对设备驱动程序进行临界区保护。主要有一下几种方式:1. Mutex(互斥)头文件:#include 初始化方法:DEFINE_MUTEX(name);或者void mutex_init(struct mutex *lock);转载 2009-12-18 10:22:00 · 657 阅读 · 0 评论 -
__attribute__ 详解
From http://hi.baidu.com/cygnusnow/blog/item/8b82000f871fcf2f6159f3de.htmlGNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attri转载 2009-12-25 11:18:00 · 1854 阅读 · 0 评论 -
mkfifo函数使用
mkfifo函数使用[code]mkfifo(建立实名管道)相关函数pipe,popen,open,umask表头文件#include#include定义函数int mkfifo(const char * pathname,mode_t mode);函数说明mkfifo()会依参数pathname建立特殊的FIFO文件,该文件必须不存在,而参数mode为该文件的权限(mode%~umask),因此原创 2009-12-16 15:24:00 · 2141 阅读 · 0 评论 -
信号量常用函数
主要用到的信号量函数有:sem_init:初始化信号量sem_t,初始化的时候可以指定信号量的初始值,以及是否可以在多进程间共享。sem_wait:一直阻塞等待直到信号量>0。sem_timedwait:阻塞等待若干时间直到信号量>0。sem_post:使信号量加1。sem_destroy:释放信号量。和sem_init对应。 可以使用系统调用semget()创建一个新的信号量集,或者存原创 2009-12-16 13:51:00 · 2251 阅读 · 0 评论 -
信号量和自旋锁
信号量和自旋锁内核同步措施 为了避免并发,防止竞争。内核提供了一组同步方法来提供对共享数据的保护。 我们的重点不是介绍这些方法的详细用法,而是强调为什么使用这些方法和它们之间的差别。 Linux 使用的同步机制可以说从2.0到2.6以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随 Linux从单处理器到对称多处理器的过度;伴随着从转载 2009-12-16 11:03:00 · 561 阅读 · 0 评论 -
常用术语缩写
SPI:串行外围接口I2C:低速串行总线协议转载 2009-10-14 11:37:00 · 699 阅读 · 0 评论 -
Linux 指令大全
Linux 指令大全cat cd chmod chown cp cut名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案) 参数: -n 或 --number 由 1 开始对所有输出的行数编号 -b 或 --number转载 2009-10-14 11:46:00 · 714 阅读 · 0 评论 -
shell及常用命令介绍
linux shell及常用命令介绍什么是shell shell是一种命令解释器,它提供了用户和操作系统之间的交互接口。shell是面向命令行的,而 X Window 则是图形界面。你在命令行输入命令,shell进行解释,然后送往操作系统执行。shell可以执行 Linux 的系统内部命令,也可以执行应用程序。你还可以利用shell编程,执行复杂的命令程序。 Linux 提供几种shell程序转载 2009-10-14 11:44:00 · 4678 阅读 · 0 评论 -
Linux环境进程间通信(一)管道和有名管道
Linux环境进程间通信(一)管道和有名管道在本系列序中作者概述了 linux 进程间通信的几种主要手段。其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。 认清管道和有名管道的读写规则是在程序中应用它们的关键,本文在详细讨论了管道和有名管道的通信机制的基础上,用实原创 2009-10-15 18:50:00 · 575 阅读 · 0 评论 -
/dev和/proc介绍
什么是proc文件系统? proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。它的目录结构如下: 目录名称原创 2009-10-28 18:56:00 · 2187 阅读 · 0 评论 -
Redhat Linux NFS配置
Redhat Linux NFS配置NFS简介:NFS是网络文件系统的简写(network file system),主要用在linux或unix环境中,是有sun公司开发,并于1984年推出的一个RPC服务系统。NFS功能介绍:他可以将多个目录或者单个目录进行发布,例如我们在网刻系统的时候可以用NFS来共享光盘镜像,NFS是以发布目录的方式将文件进行发布,而客户端是以挂载的转载 2009-11-06 14:18:00 · 2122 阅读 · 0 评论 -
如何制作和使用Jffs2文件系统
首先配置MTD $ make menuconfig 进入 Memory Technology Devices (MTD) ---> Memory Technology Device (MTD) support [*] Debugging [*] MTD part原创 2009-10-28 19:26:00 · 1229 阅读 · 0 评论 -
内存调试 - MEMWATCH
内存调试 - MEMWATCH MEMWATCH 由 Johan Lindh 编写,是一个开放源代码 C 语言内存错误检测工具,您可以自己下载它(请参阅本文后面部分的参考资料)。只要在代码中添加一个头文件并在 gcc 语句中定义了 MEMWATCH 之后,您就可以跟踪程序中的内存泄漏和错误了。MEMWATCH 支持 ANSI C,它提供结果日志纪录,能检测双重释放(double-free转载 2009-10-29 15:57:00 · 1836 阅读 · 0 评论 -
Linux常用头文件
Linux常用的头文件集合: 目录项 文件控制 文件名匹配类型 路径名模式匹配类型 组文件 网络数据库操作 口令文件 正则表达式 TAR归档值 终端I/O 符号常量 文件时间 字符扩展类型————————- INT原创 2009-12-30 10:23:00 · 1266 阅读 · 0 评论