
编程知识点
_银叶先生
这个作者很懒,什么都没留下…
展开
-
字节序:大端,小端与网络字节序
关于字节序(大端法、小端法)的定义《UNXI网络编程》定义:术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序。 也可以说: 1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。 2.大端法(Big-Endian)就是转载 2012-08-08 15:34:51 · 1052 阅读 · 0 评论 -
libpcap 库使用
Libpcap:linux 数据流:网络数据包--》网卡--》网卡驱动--》数据链路层--》IP层--》传输层--》应用层libpcap流:网络数据包--》网卡--》网卡驱动--》网络分接头--》数据包过滤--》用户APIlibpcap抓包流程:1,查找网络设备char *pcap_lookupdev(char *errbuf);返回可用的网络设备名指针列表原创 2014-01-14 15:12:39 · 962 阅读 · 0 评论 -
打桩代码
#include #include #include #include #define JMP_CMD 0xe9 //相对跳转指令 jmp xxx (总共长5个字节,后四个字节为地址) //0xff 绝对跳转指令:FF typedef struct stubInfo { void *funcAddr; //保存地址 unsigned char byteCode[5原创 2014-01-16 15:48:24 · 4474 阅读 · 2 评论 -
libata 开发手册
第1章。介绍 libata是Linux内核中,用来支持ATA主机控制器和设备的一个库。libata提供了一个ATA驱动API,ATA和ATAPI设备类型传输,ATA设备SCSI与ATA转换(T10 SAT标准)。 本指南描述了libata驱动的API,库函数,库内部,和一对简单的ATA低层驱动程序。第2章。 libata驱动API每一个低层libata硬件驱动定义一个s翻译 2014-02-15 17:27:26 · 6742 阅读 · 0 评论 -
文件系统测试--iozone使用
iozone文件系统性能测试工具:特性:标准C源码,POSIX异步IO,Mmem()文件IO,正常文件IO,单个流量模型测量,多个流量模型测量POSIX线程pthreads,多进程模型测量,Excel表导出生成图形,IO廷时数据图形,兼容64位源码,大文件,处理器缓存大小配置,可选的方法,如fsync,O_SYNC选项参数:-s 测试文件的大小(文件大小)-原创 2014-03-18 15:29:45 · 2602 阅读 · 0 评论 -
磁盘SMART信息详解
IDID十六进制值英文名中文译名最优说明10x01read error rate底层数据读取错误率存储器从一个硬盘表面读取数据时发生的错误率。原始值由于不同厂商的不同计算方法而有所不同,其十进制值往往无意义的。一般来说有数值意味着磁头已出现问题了。20x02Throughpu原创 2014-06-05 14:29:11 · 36817 阅读 · 0 评论 -
linux 下开发 segfault 错误调试
在linux 上开发会遇到segfault类的错误,转载 2014-07-18 15:55:48 · 2339 阅读 · 0 评论 -
C/C++从文件末尾往前一行一行的读
int read_tail_line(FILE *fd,char *buf){ //从后往前一行一行的读取 int c,ret; long offset; if(ftell(fd)==0){ return -1; } while(1){ c=fgetc(fd); if(c原创 2014-08-20 15:40:28 · 9306 阅读 · 0 评论 -
linux 网络管理与开发
各种接品网络接口函数与结构体:#include #include int socket(int domain,int type,int protocol);int bind(int socket,const struct sockaddr*address,size_t address_len);int listen(int socket,int backlog);int原创 2015-01-12 15:59:44 · 1842 阅读 · 0 评论 -
linux C 编程 之 进程间通信(IPC)
一,POSIX 的无名信号量的函数有以下几个:#include ;int sem_init(sem_t *sem,int pshared,unsigned int value);int sem_destroy(sem_t *sem);int sem_wait(sem_t *sem);int sem_trywait(sem_t *sem);int sem_post(sem_t原创 2013-10-24 17:32:20 · 1053 阅读 · 0 评论 -
读取未挂载的设备上的文件系统类型:char * fstype(char*device)
最近因项目需要,需要对块设备进行判断:是否有文件系统,以及文件系统的类型。 参考自mkfs.xfs的源代码#include #include #include #include #include #include #include "fstype.h"#undef XFS_SUPER_MAGIC/* * From mount(8) source by Andries B原创 2015-09-12 16:37:32 · 1850 阅读 · 0 评论 -
linux C语言编程----进程间通信
转载来源:http://book.51cto.com/art/200912/169555.htm进程间通信一个大型的应用软件往往需要众多进程协作,进程间通信(IPC)的重要性显而易见。Linux系统下的进程通信机制基本上是从UNIX平台上的进程通信机制移植而来的。主要的进程间通信机制有以下几种。无名管道(Pipe)及命名管道(Named pipe):管道可用于具有父子关系进程间的通转载 2013-06-07 17:35:15 · 3696 阅读 · 0 评论 -
TCP/IP 网络 数据包
一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解网络数据包的结构,以及协议分析。如:网络监控,故障排查等…… IP包是不安全的,但是它是互联网的基础,在各方面都有广泛的应用。由IP协议衍生的协议族有10数种(据我所知),以后还会出现更多的基于IP的协议… 先从实际出发吧!一般我们在谈上网速度的时候,专业转载 2013-04-08 10:46:11 · 2060 阅读 · 0 评论 -
linux C 编程 之 socket 网络编程
网络编程:1.基本函数int socket(int domain, int type,int protocol);int bind(int sockfd, struct sockaddr *my_addr, int addrlen);sockfd:是由socket 调用返回的文件描述符.addrlen:是sockaddr 结构的长度.my_addr:是一个指向socka原创 2013-10-24 17:15:28 · 1049 阅读 · 0 评论 -
linux 进程启动优化
转载来源:http://book.51cto.com/art/200907/135953.htm进程启动速度在实际开发过程中,经常会遇到这样的情况:由于对用户事件响应速度要求比较高,而当前的程序无法达到,程序员便不得不把它们改成守护进程,在一开机便将其启动,守候在系统中,来提高用户的响应速度,这样便导致了系统中守护进程的数量越来越多。这些守护进程不光会占用大量的内存,而且还容易造成内存转载 2013-06-07 17:41:38 · 2052 阅读 · 0 评论 -
sed
sed全名叫stream editor,流编辑器,用程序的方式来编辑文本,相当的hacker啊。sed基本上就是玩正则模式匹配,所以,玩sed的人,正则表达式一般都比较强。同样,本篇文章不会说sed的全部东西,你可以参看sed的手册,我这里主要还是想和大家竞争一下那些从手机指缝间或马桶里流走的时间,用这些时间来学习一些东西。当然,接下来的还是要靠大家自己双手。用s命令替换我转载 2013-07-03 11:23:57 · 872 阅读 · 0 评论 -
awk
起步上台我从netstat命令中提取了如下信息作为用例:$ cat netstat.txtProto Recv-Q Send-Q Local-Address Foreign-Address Statetcp 0 0 0.0.0.0:3306 0.0.0.0:*转载 2013-07-03 11:21:32 · 762 阅读 · 0 评论 -
好书推荐
linux 环境开发:>shell脚本编程大全(第2版)>>>内核开发:LDDULK>>转载 2013-07-03 11:00:56 · 646 阅读 · 0 评论 -
LFS http://os.51cto.com/art/201010/230009.htm
http://os.51cto.com/art/201010/230009.htm转载 2013-06-07 18:08:56 · 981 阅读 · 0 评论 -
Linux C语言编程 之 线程同步机制
linux C线程间同步机制有很多:互斥锁基本操作函数:初始化互斥锁: pthread_mutex_init();销毁互斥锁: pthread_mutex_destroy();阻塞申请互斥锁: pthread_mutex_lock();释放互斥锁: pthread_mutex_unlock();非阻塞申请互斥锁: pthread_mutex_tryloc原创 2013-10-18 14:31:57 · 2440 阅读 · 0 评论 -
计算机原理之 四位计算机原理与实现
阮一峰的网络日志 » 首页 » 档案上一篇:URL的井号 下一篇:中国经济:转变和对策 分类: 理解计算机四位计算机的原理及其实现作者: 阮一峰日期: 2011年3月12日你是否想过,计算机为转载 2013-11-14 19:34:36 · 921 阅读 · 0 评论 -
网络协议
我们每天使用互联网,你是否想过,它是如何实现的?全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网转载 2013-11-14 20:58:38 · 991 阅读 · 0 评论 -
linux c语言编程保垒
linux C语言编程保垒:1。文件编程:2。标准I/O库;3。进程操作;4。线程操作;5。网络编程;6。数据库编程;5。网络编程TCP协议原始的互联网使用的传输介质为电话线,计算机通过调制解调器将数值信号转为模拟信号,然后使用电流载波。因为电话线的噪声极大,很容易造成误码,因此TCP协议具有完善的循环校验机制。TCP是重要的传输层协议,必须保证数据转载 2012-08-15 12:25:35 · 1716 阅读 · 0 评论 -
shell编程基础
变量赋值和引用Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z) 或者_中间不能有空格,可以使用下划线(_)不能使用其他标点符号需要给变量赋值时,可以这么写:变量名=值 要取用一个变量的值,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候,不能在"="两边留空格 )#!/bin/bash# 对变量赋值:转载 2013-12-06 10:00:49 · 673 阅读 · 0 评论 -
应用程序编程---- 选项参数处理
#include 处理短选项:带一个"-"。如:-a int getopt(int argc,char *argv[],char*optstring);optstring:选项格式字符串;选项为一个"-"后跟一个字母或数字。单个字符,表示选项 单个字符后接一个冒号":",表示该选项后必须跟一个参数。单个字符后接两个冒号"::",表示该选项后跟一个可选参数。如“1ac原创 2014-03-15 17:38:11 · 1318 阅读 · 0 评论