![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux c
文章平均质量分 90
天天向上_好好学习
这个作者很懒,什么都没留下…
展开
-
c语言字符串 数字转换函数大全
http://blog.csdn.net/zuopai/article/details/2226612c语言字符串 数字转换函数大全 最近学数据结构老是做实验常用到字符串和数字的转换想找却发现网上的资料太散所以搜集整理一下 方便以后再用atof(将字符串转换成浮点型数)atoi(将字符串转换成整型数)atol(将字符串转换成长整型数)strt转载 2012-12-27 19:29:07 · 605 阅读 · 0 评论 -
up与dup2函数介绍----转载
http://blog.sina.com.cn/s/blog_7106477c0100r64r.htmldup和dup2也是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符。它们经常用来重定向进程的stdin、stdout和stderr。这两个函数的 原形如下:#include int dup( int oldfd ); int dup2( in转载 2013-01-05 19:41:12 · 672 阅读 · 0 评论 -
mysql c语言
http://blog.csdn.net/s_a_n_/article/details/6263423// c语言 连接 mysql 例程 // 安装mysql时注意要完全安装 将mysql 自带的库安装到电脑上 // IDE 设置 将mysql 的include 文件夹设为 include目录,mysql的lib/opt目录设为 link目录 // IDE设置 连接转载 2013-01-06 15:53:33 · 605 阅读 · 0 评论 -
Unix网络编程卷1第11章 名字与地址转换getservbyname 与 getservbyport函数
http://hi.baidu.com/nicker2010/item/8b7ec5ff3dff927d3c198b10Unix网络编程卷1第11章 名字与地址转换getservbyname 与 getservbyport函数服务也通常靠名字来标志,getservbyname函数用于根据给定名字查找相应服务。#includestruct servent *getserv转载 2013-01-07 16:37:04 · 842 阅读 · 0 评论 -
linux下libpcap抓包分析
http://www.cnblogs.com/Seiyagoo/archive/2012/04/28/2475618.htmllinux下libpcap抓包分析一、首先下载libpcap包http://www.tcpdump.org/#latest-release 然后安装,安装完成后进入安装根目录的tests文件夹,编译运行findalldevstest.c(编译时加上转载 2013-01-08 10:27:14 · 2370 阅读 · 0 评论 -
编写自己的sniffer(一)
http://www.cnblogs.com/Seiyagoo/archive/2012/06/30/2571297.html#2454757一、系统环境 1、系统及类库要求:类Unix系统+libpcap库+libnet库+pcre库; 2、各组件版本要求:libpcap 1.0以上;libnet 1.1以上;pcre 7.5以上; 注意:对于不转载 2013-01-08 10:51:14 · 2599 阅读 · 0 评论 -
编写自己的sniffer(二)
http://www.cnblogs.com/Seiyagoo/archive/2012/06/30/2571383.html一、提取端到端的流数据 在wireshark抓包的过程中,发现了一个比较实用的功能,就是follow tcp stream,也即跟踪端到端之间两个主机间的所有应用层数据,于是我就自己尝试着实现这个功能,构造五元组数据结构,比较判断是否是相同连转载 2013-01-08 10:52:26 · 1623 阅读 · 0 评论 -
realloc 使用详解(分析realloc invalid pointer、指针无效等错误)
http://www.cnblogs.com/ladd/archive/2012/06/30/2571420.htmlrealloc函数用来为ptr重新分配大小为size的一块内存,看似很简单,在使用过程中却会发生各种错误。函数形式为:void * realloc ( void * ptr, size_t new_size );最近在网上查看了一些资料,在glibc中没有找到具体的转载 2013-01-08 10:54:43 · 2367 阅读 · 0 评论 -
Linux / Unix Command: getservbyname
http://linux.about.com/library/cmd/blcmdl3_getservbyname.htmNAMEgetservent, getservbyname, getservbyport, setservent, endservent - get service entry SYNOPSIS#include netdb.h>struct se转载 2013-01-08 15:34:31 · 925 阅读 · 0 评论 -
系统调用跟我学(2)
关于进程的一些必要知识http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part2/index.html先看一下进程在大学课本里的标准定义:“进程是可并发执行的程序在一个数据集合上的运行过程。”这个定义非常严谨,而且难懂,如果你没有一下子理解这句话,就不妨看看笔者自己的并不严谨的解释。我们大家都知道,硬盘上的一个可执行文件经转载 2013-01-08 17:31:28 · 605 阅读 · 0 评论 -
孤儿进程和僵尸进程[详解]
http://blog.sina.com.cn/s/blog_4c6d89b20100h2od.html一、定义:什么是孤儿进程和僵尸进程 僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所转载 2013-01-08 14:49:21 · 803 阅读 · 0 评论 -
system函数返回值问题(system的实现)—signal(SIGCHLD,SIG_DFL);signal(SIGNCHLD,S
http://hi.baidu.com/dooez/item/6cb5febbb88007ed4fc7fdef1、关于在system中获取子进程的返回值与SIGCHLD在Linux我们一般写的是Server程序,所以,一般在main函数中,首先将进程转换为后台进程,即调用deamon,deamon的一般实现,参见::deamon的实现中会忽略下面的信号:signal转载 2013-01-08 16:33:58 · 4485 阅读 · 0 评论 -
关于SIGCHLD的几点讨论
http://blog.chinaunix.net/uid-130624-id-2907711.html关于SIG_CHLD信号传递机制,从内核角度做些分析:1.child退出,调用do_exit()do_exit()->exit_notify->do_notify_parentif(!tsk->ptrace&& sig == SIGCHLD &转载 2013-01-08 16:37:38 · 1234 阅读 · 0 评论 -
系统调用跟我学(1)
什么是系统调用?http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/index.htmlLinux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。从某种角度来看,系统调用和普通的函数调用非常相似。区别仅仅在于,系统调用由操作系统核心提供,运行于核心态;转载 2013-01-08 17:29:41 · 620 阅读 · 0 评论 -
系统调用跟我学(3)
1.7 背景http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part3/index.html在前面的文章中,我们已经了解了父进程和子进程的概念,并已经掌握了系统调用exit的用法,但可能很少有人意识到,在一个进程调用了exit之后,该进程并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构。在Linux进程转载 2013-01-08 17:33:41 · 543 阅读 · 0 评论 -
系统调用跟我学(4)
1.13 Shellhttp://www.ibm.com/developerworks/cn/linux/kernel/syscall/part4/index.html对Linux不是太陌生的读者都应该对Shell有一定的了解,就是这个程序在我们登陆后自动执行,打印出一个$符号,然后等待我们输入命令。Linux下最常用的Shell应用程序是Bash,绝大部分Linux发行版默认安装的都是它转载 2013-01-08 17:35:06 · 648 阅读 · 0 评论 -
Linux系统调用列表
http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。按照惯例,这个列表以m转载 2013-01-08 17:46:18 · 794 阅读 · 0 评论 -
网络编程Server端 --- Linux版
http://blog.csdn.net/xiaobin_hlj80/article/details/7172375之前我们已经编写了一个通用的Socket服务器端程序,我们现在增加对此类操作系统特性的一些code!大家都知道fork() 只有在Unix/Linux类操作系统才有!因为他们没有线程这一说。他们只有子进程。要用到fork那么就必须用到 waitpid() !waitp转载 2013-01-08 18:11:51 · 662 阅读 · 0 评论 -
简单介绍libevent快速上手
http://blog.chukong-inc.com/index.php/2012/02/26/%E7%AE%80%E5%8D%95%E4%BB%8B%E7%BB%8Dlibevent%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/简介libevent是一个事件出发的网络库,使用与 windows,linux,bad, mac os 等的高性能跨平台转载 2013-02-01 10:36:30 · 826 阅读 · 0 评论 -
使用 libevent 和 libev 提高网络应用性能
http://www.ibm.com/developerworks/cn/aix/library/au-libev/index.html使用 libevent 和 libev 提高网络应用性能管理多个 UNIX 网络连接Martin C. Brown, 作家, Freelance简介: 构建现代的服务器应用程序需要以某种方法同时接收数百、数千转载 2013-02-01 14:17:04 · 808 阅读 · 0 评论 -
epoll源码分析---sys_epoll_create()函数
http://blog.csdn.net/moonvs2010/article/details/8506940eventpoll的优点就不用说了,网上的资料很多,eventpoll的使用也很广泛,特别是在Web服务器中。因为最近要用到epoll,所以好好地看了一下它的实现,把学到的一些东西做下整理,做个记录。一、sys_epoll_create() 其源码如下:转载 2013-01-31 15:09:01 · 793 阅读 · 0 评论 -
linux epoll模型
http://yjtjh.blog.51cto.com/1060831/294119Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。Linux 2.6内核中有提高网络I/O性能的新方法,即epoll 。1、为什么select落后首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SE转载 2013-01-31 17:00:42 · 658 阅读 · 0 评论 -
编写linux守护进程
http://hi.baidu.com/kanif?page=5在linux中,系统与用户交流的界面为终端,每一个从此终端开始运行的进程都将依附于这个终端,当终端关闭时,相应的进程都会自动关闭。但在实际使用中,经常需要让进程脱离终端并在后台运行。让进程脱离终端有多种方法,例如nohup、screen、crontable等。那么如何让进城在运行时自动脱离终端转化为守护进程呢?一转载 2013-02-01 14:32:06 · 657 阅读 · 0 评论 -
do…while(0)的妙用
http://qiusuoge.com/8346.html 在C++中,有三种类型的循环语句:for, while, 和do…while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do…while相对不受重视。但是,最近在读我们项目的代码时,却发现了do…while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do…while转载 2013-01-31 15:21:42 · 614 阅读 · 0 评论 -
socket异步编程--libevent的使用
这篇文章介绍下libevent在socket异步编程中的应用。在一些对性能要求较高的网络应用程序中,为了防止程序阻塞在socket I/O操作上造成程序性能的下降,需要使用异步编程,即程序准备好读写的函数(或接口)并向系统注册,然后在需要的时候只向系统提交读写的请求之后就继续做自己的事情,实际的读写操作由系统在合适的时候调用我们程序注册的接口进行。异步编程会给一些程序猿带来一些理解和编写上的困难,转载 2012-10-17 09:38:17 · 1042 阅读 · 0 评论 -
使用libevent编写linux服务(一)
http://hi.baidu.com/kanif/item/c308cbffaf679b11fe358297使用libevent编写linux服务(一)一 libevent简介libevent是一个支持Windows、linux和bsd等平台的网络事件驱动程序库。它支持多种I/O服用机制,按照优先级从高到低依次为:evport、kqueue、epoll、devpoll转载 2013-02-01 14:33:56 · 765 阅读 · 0 评论 -
_FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程)
http://hi.baidu.com/925566297/item/4661483d83df4800ceb9fec6__FILE__,__LINE__,FUNCTION__实现代码跟踪调试(下c语言编程 )先看下简单的初始代码:注意其编译运行后的结果。root@xuanfei-desktop:~/cpropram/2# cat global.h //头文件#ifndef转载 2013-01-31 11:20:11 · 874 阅读 · 0 评论 -
epoll_create, epoll_ctl和epoll_wait
名词解释:man epoll之后,得到如下结果: NAME epoll - I/O event notification facility SYNOPSIS #include DEscrīptION epoll is a variant of poll(2) that can be used either as Edg转载 2013-01-31 14:04:47 · 683 阅读 · 0 评论 -
readline及freadline函数
http://sjlovechina.blog.163.com/blog/static/12336859820113862918589/ 出于某些原因(至于什么原因,不解释),需要用到从命令行读取一行字符串(包含空格的),网上查了一下貌似C标准库里没什么好用的函数可供使用(貌似fgets稍微好一点,可本人对此不满意,横了心要自己写个),于是乎无聊写了自己的readline(其实是个宏定义函转载 2013-03-04 10:14:07 · 10348 阅读 · 0 评论 -
getline函数
今天写一个小程序,统计一下一个文件中以'P'开头的行数。我用了两种方法,一种是使用sed,另一种是用c,使用了getline函数。这个函数的声明如下: #define _GNU_SOURCE #include stdio.h> ssize_t getline(char **lineptr, size_t *n, FILE *stream);说转载 2013-03-04 12:05:00 · 1202 阅读 · 0 评论 -
网络编程原始套接字
SOCKET_STREAM 流式套接字 SOCKET_DGRAM SOCKET_RAW 原始套接字 IPPROTO_IP IP协议 IPPROTO_ICMP INTERNET控制消息协议,配合原始套接字可以实现ping的功能 IPPROTO_IGMP INTERNET 网关服务协议,在多播中用到在AF_INET地址族下转载 2013-03-04 15:23:03 · 783 阅读 · 0 评论 -
memcpy memmove区别和实现
http://www.cnblogs.com/kekec/archive/2011/07/22/2114107.htmlmemcpy与memmove的目的都是将N个字节的源内存地址的内容拷贝到目标内存地址中。但当源内存和目标内存存在重叠时,memcpy会出现错误,而memmove能正确地实施拷贝,但这也增加了一点点开销。memmove的处理措施:(1)当源内存的转载 2013-02-21 11:02:34 · 595 阅读 · 0 评论 -
passwd Authentication token manipulation error
Authentication token manipulation error发生该错误原因是:1、分区没有空间导致。2、/etc/passwd 和/etc/shadow不同步但是这次上面两条却行不通,通过df查看根分区还有40%剩余。 1、尝试修改密码,出现错误# passwdChanging password for user root.转载 2013-03-05 10:29:32 · 2150 阅读 · 0 评论 -
TCP/IP
TCP/IP implhttp://www.tech4cloud.com/tech/2012/11/09/TCPIP-note.html协议策略和驱动进行分离为了搞清楚driver层和protocol层是怎么抽象分层和关联的如何在协议栈里进行流控和netfilter的如何工作static struct packet_type ip_packet_type _转载 2013-03-06 16:25:03 · 1220 阅读 · 0 评论 -
Linux TCP/IP 协议栈的关键数据结构Socket Buffer(sk_buff )
sk_buff结构可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息。它在中定义,并包含很多成员变量供网络代码中的各子系统使用。这个结构在linux内核的发展过程中改动过很多次,或者是增加新的选项,或者是重新组织已存在的成员变量以使得成员变量的布局更加清晰。它的成员变量可以大致分为以下几类:Layout 布局General 通用Featur转载 2013-02-22 09:05:21 · 915 阅读 · 0 评论 -
linux协议栈之网桥实现之一
网卡驱动的最后一个函数是netif_receive_skb.就从它说起。为了简单起见,去掉了里面预编译代码int netif_receive_skb(struct sk_buff *skb) (net/core/dev.c){ struct packet_type *ptype, *pt_prev; int ret = NET_R转载 2013-03-07 10:36:29 · 1956 阅读 · 0 评论 -
linux 判断文件是否存在
对于判断文件是否存在,每个人有不同的方法!我通常采用两种方法 : open 和 access ;这个俩个方法有相似之处,且有不同之处;下面为大家详细说明他们的不同之处:open 是打开,读写等操作文件的一个函数,access就是一个判断文件权限的函数。在linux下,由于文件有不同的权限,当当前用户没有对此文件的读权限的时候,用来判断文件是否存在,显然不合适。而access却可转载 2013-03-07 15:46:25 · 1649 阅读 · 0 评论 -
网桥实现与分析
#1 Linux网桥实现分析-第一部份,源码框架这篇文章最初在www.chinaunix.net上发表,现在将其稍做整理,发在自己的小站上面来。Linux 网桥实现分析作者:kendo第一部份 源码框架一、 网桥原理传统的中继器,如HUB,是一个单纯的物理层设备,它将每一个收到的数据包,在其所有的端口上广播,由接收主机来判断这个数据包是否转载 2013-03-07 10:35:12 · 1065 阅读 · 0 评论 -
linux协议栈之网桥实现之二
前面已经分析了,将接口添进网桥时,用户空间调用ioctl(br_socket_fd, SIOCBRADDIF, &ifr)注意到在void br_dev_setup(struct net_device *dev)中已经对dev->do_ioctl进行了赋值,即:dev->do_ioctl = br_dev_ioctl进行ioctl进行访问的时候,进入到br_dev_ioctl:转载 2013-03-07 10:37:09 · 1097 阅读 · 0 评论 -
自己写shell 解释器
http://www.kerneltravel.net/journal/iii/shell.htmShell解释器DIY L 本文适合的读者对象 对linux环境上的c语言开发有一定经验;对linux环境编程(比如进程、管道)有一点了解。 一、概述:本章的目的是让大家了解shell的基本原理,并且自己动手做一个shell解释器。为转载 2013-03-08 09:55:32 · 1419 阅读 · 0 评论