linux编程
文章平均质量分 65
iteye_582
这个作者很懒,什么都没留下…
展开
-
详解sigaction --转
详解sigaction 这是挺好理解的,就好比在系统这个大进程里运行许多派生的进程,为了协调这些派生出的子进程,就必然要使用一些手段来通知监视。而信号就是这样一种系统级别的全局变量的通知。想想在写程序中,多个函数协调一个全局函数的情形。。。 the signal is an event generated by the UNIX and Linux systems in respo...原创 2013-04-20 03:31:26 · 323 阅读 · 0 评论 -
/etc/hosts配置文件解析
/etc/hosts配置文件解析这个文件可以配置主机ip及对应的主机名,对于服务器类型的linux系统其作用还 是不可忽略的。在局域网或是INTERNET上,每台主机都有一个IP地址,它区分开每台主机,并可以根据ip进行通讯。但IP地址不方便记忆,所以又有 了域名。在一个局域网中,每台机器都有一个主机名,用于区分主机,便于相互访问。Linux主机名的相关配置文件就是/etc/hos...原创 2012-06-20 14:46:12 · 246 阅读 · 0 评论 -
wifidog+authpuppy认证页面的配置
转自:http://blog.sina.com.cn/s/blog_d2facf270101g7hy.htmlwifidog+authpuppy认证页面的配置 路由器上用的是wifidog client,服务器后端管理用的是authpuppy。首先,选择自己的操作系统,在http://www.authpuppy.org/doc/Main_Page网站里面,我的操作系统...原创 2013-10-29 02:15:53 · 180 阅读 · 0 评论 -
Linux下C语言实现文件拷贝--转
Linux下C语言实现文件拷贝/* Function:copy file from file1 to file2 How to execute: ./copyfile file1 file2 (under Linux) Data:2007-05-09*/ #include <stdio.h> /*fprintf(),stder...原创 2012-11-01 23:11:10 · 608 阅读 · 0 评论 -
移殖net-snmp和应用net-snmp开发详解 -转
移殖net-snmp和应用net-snmp开发详解 @1. 获取net-snmp开发包 可以用开源上http://www.net-snmp.org/download.html获取自己所需要的各种版本。 @2. 分析需求,进行合理配置 比如要不要将其编译成动态库,还是静态库;要不要某些库;等等。可以通过在其目录下执行./configure -...原创 2012-06-08 17:46:29 · 122 阅读 · 0 评论 -
strtok 和strtok_r 的使用
1. strtok介绍众所周知,strtok可以根据用户所提供的分割符(同时分隔符也可以为复数比如“,。”)将一段字符串分割直到遇到"\0".比如,分隔符=“,” 字符串=“Fred,John,Ann”通过strtok 就可以把3个字符串 “Fred” “John” “Ann”提取出来。上面的C代码为QUOTE:int in=0;char buffer[]="Fred,J...原创 2012-06-01 17:13:39 · 79 阅读 · 0 评论 -
关于LINUX C中函数strtok使用要点
strtok函数的使用是一个老生常谈的问题了。该函数的作用很大,争议也很大。以下的表述使用的源代码大部分来自于网络,我稍加修改作为例证。当然,本人水平有限,有不妥之处望各位多多指教。strtok的函数原型为char *strtok(char *s, char *delim),功能为“Parse S into tokens separated by characters in DELIM.I...原创 2012-06-01 15:45:55 · 189 阅读 · 0 评论 -
基于SNMP网络管理系统的设计与实现
原文链接:http://www.docin.com/p-265239451.html原创 2012-05-25 15:54:03 · 684 阅读 · 0 评论 -
getopt详解
getopt被用来解析命令行选项参数。就不用自己写东东处理argv了。#include <unistd.h> extern char *optarg; //选项的参数指针 extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。 extern int opterr, //当opt...原创 2012-05-25 10:54:29 · 150 阅读 · 0 评论 -
移植rp-pppoe到s3c2440实现ADSL拨号上网--转
一:总的来说可以分四点1:arm linux 内核支持ppp2: install ppp-2.4.4 (rp-pppoe要ppp的支持才能正常运行)。3: install rp-pppoe。4:把步骤(2)(3)中生成的相应文件下载到目标板,根据相应提示适当修改就行了。二:需要的包移植需要rp-pppoe和ppp。我用的是rp-pppoe3.10和ppp-...原创 2012-12-28 01:22:07 · 153 阅读 · 0 评论 -
Ubuntu上架设PPPoE Server--转
一。安裝 PPPoE Server Software1)sudo apt-get install ppp2)rp-pppoe(非apt套件)wget -c http://www.roaringpenguin.com/files/download/rp-pppoe-3.10.tar.gzsudo tar zxvf rp-pppoe-3.6.tar.gz -C /opt/sudo...原创 2012-12-28 01:25:57 · 297 阅读 · 0 评论 -
linux上搭建pppoe-server
记录下过程,主要还是参考:http://tingwang116.spaces.live.com/blog/cns!FAA513B1B5D9F301!241.entry 一。安裝 PPPoE Server Software1)sudo apt-get install ppp2)rp-pppoe(非apt套件)wget -c http://...原创 2012-12-28 15:53:04 · 169 阅读 · 0 评论 -
Linux定时器的使用 --转
使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,使用alarm定时发出一个信号,还有那就是用gettimeofday, difftime等自己来计算时间间隔,然后时间到了就执行某一任务,但是这种方法效率低,所以不...原创 2013-04-20 01:13:24 · 112 阅读 · 0 评论 -
Linux C 函数参考(日期时间) --转
Linux C 函数参考(日期时间)1.1 概述世界标准时间(Coordinated Universal Time,UTC),也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。世界各地时间也世界标准时间为基准划分为不同的时区,例如,中国的北京时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。 Calendar Time:日历时间,...原创 2013-04-20 00:03:06 · 184 阅读 · 0 评论 -
对(*(volatile unsigned long *)) 的理解
对(*(volatile unsigned long *)) 的理解 (*(volatile unsigned long *)) 这个语句对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射的。如果系统结构支持独立的IO地址空间,并且是端口映射,就必须使用汇编语言完成实际对设备的控制,因为C语言并没有提供真正的“端口”的概念。如果是内存映射,那就方便多了。 以 ...原创 2013-03-20 15:10:51 · 110 阅读 · 0 评论 -
Linux内核模块概述 --转
Linux内核模块概述 . Linux 内核具有模块化设计。在引导时,只有少量的驻留内核被载入内存。这之后,无论何时用户要求使用驻留内核中没有的功能,某内核模块(kernel module) ,有时又称驱动程序(driver) 。就会被动态地载入内存。 在安装过程中,系统上的硬件会被探测。基于探测结果和用户提供的信息,安装程序会决定哪些模块需要在引导时被载入。...原创 2013-01-08 10:43:16 · 92 阅读 · 0 评论 -
防火墙实现URL过滤原理
对于URL过滤:1.HTTP URL过滤 2.https URL过滤1.HTTP URL过滤 (http请求和服务端口:80) 实现原理:iptables 规则在协议栈中获取到HTTP请求报头中的HOST字段;拦截目地端口为80的包,布配HOST字段的值是否是设置过虑的URL ,如果是则DORP掉,否则放行。2.https URL过滤 (https请求端口为随机值,https...原创 2014-05-08 18:45:44 · 6814 阅读 · 0 评论 -
解决webserver在IE下载文件,文件名为乱码问题
通常使用以下代码就能导出为流的文件,而不是打开文件 [code="c"] websWrite(wp, T("HTTP/1.1 200 OK\n")); websWrite(wp, T("Pragma: no-cache\n")); websWrite(wp, T("Cache-control: no-cache\n")); websWrite(wp, T("Content-Le...原创 2013-12-28 16:26:05 · 195 阅读 · 0 评论 -
C实现urlencode&urldecode
static unsigned char char_to_hex( unsigned char x ){ return (unsigned char)(x > 9 ? x + 55: x + 48);}static int is_alpha_number_char( unsigned char c ){ if ( (c >= 'a' && c = 'A' && c = ...原创 2013-12-28 16:20:13 · 293 阅读 · 0 评论 -
c语言实现urlencode
#include #include /** * @brief URLEncode 对字符串URL编码 * * @param str 原字符串 * @param strSize 原字符串长度(不包括最后的\0) * @param result 结果缓冲区的地址 * @param resultSize 结果缓冲区的大小(包括最后的\0) ...原创 2013-12-28 16:19:15 · 846 阅读 · 1 评论 -
Linux下时间和定时器
http://blog.chinaunix.net/u1/35065/showart_1870601.html重点读了第三种方法。文章写得很好,加了一点点注释可参考 http://linux.die.net/man/3/timer_settime http://linux.die.net/man/2/setitimer http://openg...原创 2012-05-18 18:08:39 · 125 阅读 · 0 评论 -
SNMP协议入门
1. SNMP管理模型 1.1. 什么是SNMP SNMP(Simple Network Management Protocol)是被广泛接受并投入使用的工业标准,它的目标是保证管理信息在任意两点中传送,便于网络管理员在网络上的任何节点检索信息,进行修改,寻找故障;完成故障诊断,容量规划和报告生成。它采用轮询机制,提供最基本的功能集。最适合小型、快速、低价格的环境使用。它只要求无证实的传输...原创 2012-05-16 16:36:56 · 74 阅读 · 0 评论 -
Linux中的僵尸进程
Linux中的僵尸进程 解释一:[1,2]●Unix编程中所谓"僵尸进程"指什么,什么情况下会产生僵尸进程,如何杀掉僵尸进程:在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用wait或waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份ki...原创 2012-03-13 11:55:18 · 86 阅读 · 0 评论 -
详解C语言中volatile关键字
详解C语言中volatile关键字volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:...原创 2012-03-13 11:30:49 · 92 阅读 · 0 评论 -
宏定义中的#、#@与##
有些用法一般的C语言书籍中没有,但确实存在,如宏定义中的#、#@与##,说明如下:1、#为后面的宏形参添加双引号。例:#define SINGLESHARP(arg) #argSINGLESHARP(singlesharp) <==> "singlesharp"2、#@为后面的宏形参添加单引号。例:#define SINGLESHARPWITHAT(arg) #@argSINGLESH...原创 2012-03-12 17:56:35 · 188 阅读 · 0 评论 -
C程序怎样组织更有结构性
摘自:http://blog.chinaunix.net/space.php?uid=23481299&do=blog&id=3124965在C语言的应用领域,如通讯领域和嵌入式系统领域,一个的软件项目通常包含很多复杂的功能,实现这个项目不 是一个程序员单枪匹马可以胜任的,往往需要一个团队的有效合作,另外,在一个以C代码为主的完整的项目中,经常也需要加入一些其他语言的代...原创 2012-03-08 16:17:58 · 98 阅读 · 0 评论 -
linux下dup/dup2函数的用法2
相信大部分在Unix/Linux下编程的程序员手头上都有《Unix环境高级编程》(APUE)这本超级经典巨著。作者在该书中讲解dup/dup2之前曾经讲过“文件共享”,这对理解dup/dup2还是很有帮助的。这里做简单摘录以备在后面的分析中使用:Stevens said:(1) 每个进程在进程表中都有一个记录项,每个记录项中有一张打开文件描述符表,可将视为一个矢量,每个描述符占用一项。与每个文件描...原创 2012-03-08 10:37:50 · 143 阅读 · 0 评论 -
指针常量与常量指针的区别
指针常量与常量指针的区别: type *const pt;//定义了一个指针常量 不能修改pt的指向,但可以修改指向里面的数据。 const type* pt;//定义了一个指向常量的指针 可以修改pt的指向,但不可以修改指向里面的数据还有一种就是指向常量的指针常量了 const type *const pt; 既不能修改pt的指向,也不能修改pt指向里面的...原创 2012-03-03 20:47:42 · 105 阅读 · 0 评论 -
C中的预编译宏定义
原文链接:http://www.uml.org.cn/c++/200902104.asp在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理. C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的C编译器都将预处理, 汇编, 编...原创 2012-03-02 11:46:57 · 91 阅读 · 0 评论 -
linux_C_environ变量
environ变量:environ变量的声明如下:#include <stdlib.h>extern char **environ;这个变量是用来打印环境变量。#include <stdio.h>#include <stdlib.h>extern char **environ;int main(){ char **env = environ; while(*...原创 2012-03-01 17:04:02 · 79 阅读 · 0 评论 -
创建守护进程(Daemon)
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。 比如,作业规划进程crond,打印进程lpd等。 守护进程的编程本身并不复杂,复杂的是各种版本的Un...原创 2012-03-15 00:29:17 · 91 阅读 · 0 评论 -
使用套接字 ioctl 命令
使用 ioctl 套接字控制选项通常,网络程序需要了解系统中所有有关网络接口和 IP 地址的可用信息。现在,未来的应用程序可以支持 IPv4 和 IPv6 双协议栈。ioctl 结构需要对指针进行遍历和操作,以处理 IPv4 和 IPv6 地址在长度上的差别(除了使用合适的套接字结构 sockaddr_in6 或 sockaddr_storage 之外)。 AIX Version 5.3 ...原创 2012-03-27 16:06:45 · 276 阅读 · 0 评论 -
select函数总结
select函数总结 阻塞方式block,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回。使用Select就可以完成非阻塞non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生则与阻塞方式相同,若事件没有发生则返回一个代码来告知事件未发生,...原创 2012-03-30 21:44:52 · 93 阅读 · 0 评论 -
_attribute_((packed))
1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:在TC下:struct my{ char ch; int a;} sizeof...原创 2012-05-11 14:36:12 · 77 阅读 · 0 评论 -
linux exec的用法
linux exec的用法说是exec系统调用,实际上在Linux中,并不存在一个exec()的函数形式,exec指的是一组函数,一共有6个,分别是:#include <unistd.h>extern char **environ;int execl(const char *path, const char *arg, ...);int execlp(con...原创 2012-05-11 11:18:38 · 121 阅读 · 0 评论 -
C/C+语言struct结构体的深层探索--转载
1. struct的巨大作用面对一个人的大型C/C++程序时,只看其对struct的使用情况,我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用struct是区别一个开发人员是否具备丰富开发经历的标志。所以,struc...原创 2012-05-03 11:22:44 · 126 阅读 · 0 评论 -
C语言:内存字节对齐详解
C语言:内存字节对齐详解地址:http://hi.baidu.com/jjpro/blog/item/06ea380859eac433e82488f8.html 一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按...原创 2012-04-28 17:08:04 · 90 阅读 · 0 评论 -
inet_ntop与inet_pton
inet_ntop与inet_ptonLinux下inet_pton和inet_ntop这2个IP地址转换函数,可以在将IP地址在“点分十进制”和“整数”之间转换。而且,这2个函数能够处理ipv4和ipv6。算是比较新的函数了。 inet_pton函数原型如下[将“点分十进制” -> “整数”] #include <sys/types.h> #include ...原创 2012-04-27 10:38:32 · 103 阅读 · 0 评论 -
C语言整型变量所占内存字节数 .
C标准没有具体规定各类整型数据所占内存字节数,只要求long型数据长度不短于int型,short型不长于int型。具体如何实现,由各计算机系统自行决定。如在微机上,int型和short都是16位,而long是32位。在VAX 750上,short是16位,而int和long都是32位,一般以一个机器字(word)存放一个int数据。前一阶段,微机的字长一般为16位,故以16位存放一个整数,但整数的...原创 2012-04-27 10:26:39 · 825 阅读 · 0 评论 -
linux操作系统的DNS客户端配置
基于linux操作系统的DNS客户端配置:Linux设置客户端的DNS服务器主要为三个文件,他们分别是‘/etc/hosts’;‘/etc/host.conf’;‘/etc/resolv.conf’. hosts文件主要用来做一些内部网络IP地址的解析,设置非常简单,而且修改方便。缺点是不能解析公网上的域名。 /host.conf文件规定了使用解析方法的顺序,一般以hos...原创 2012-09-16 16:52:51 · 678 阅读 · 0 评论