自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码农

耕田种地

  • 博客(10)
  • 资源 (4)
  • 收藏
  • 关注

原创 防止全局变量、头文件重复包含与 extern 的使用

C语言中经常会出现文件重复包含而导致全局变量重复定义,下面以一个例子说明-----MakefileCC = gccOBJS = main.o errhandle.o strcopy.oCFLAGS = -Wall -std=c99main: ${OBJS} # or $(OBJS), ${OBJS} is shell style ${CC} ${CFLAGS} -o $@ ${

2012-08-17 21:25:57 2928

原创 主机名、服务与地址的映射——getaddrinfo(),getnameinfo(),gai_strerror()

/* Structure to contain information about address of a service provider. */struct addrinfo{ int ai_flags; /* Input flags. */ int ai_family; /* Protocol family for socket. */ int ai_sockt

2012-08-16 22:27:11 17487 1

原创 获取协议名、协议号——getprotoent(),getprotobyname(),getprotobynumber()

/* Description of data base entry for a single service. */struct protoent{ char *p_name; /* Official protocol name. */ char **p_aliases; /* Alias list. */ int p_proto; /* Protocol numb

2012-08-16 10:21:59 4120

原创 获取服务名、服务端口号、服务所用协议——getservent(),getservbyname(),getservbyport()

Services are represented by the port number portion of the address. Each service is offered on a unique, well-known port number. We can map a service name to a port number withgetservbyname, map a p

2012-08-16 10:01:04 4491 2

原创 获取网络号、网络名——getnetent(),getnetbyaddr(),getnetbyname()

struct netent *getnetent(void);struct netent *getnetbyname(const char *name);struct netent *getnetbyaddr(uint32_t net, int type);void setnetent(int stayopen);void endnetent(void);/* Description

2012-08-15 21:39:45 4665

原创 IP地址转换函数——inet_ntop(),inet_pton(),htonl(),ntohl()

1、点分十进制字符串(dotted-decimal notation)与二进制数值互转const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);int inet_pton(int af, const char *src, void *dst);注意:(1) 二进制数值形式是网络字节序(network

2012-08-15 20:29:47 7579

原创 防止内存泄露的几个良好的编码习惯

以将子函数设计成共别人使用的 API 的思想来考虑如何设计子函数----------情景:主调函数需要调用子函数 f,函数f返回一段数据区1、在主调函数中分配好内存,将地址传递给子函数f。这样做的好处是,内存的释放工作交给分配者,子函数不用管,保证子函数的模块独立性。与之对应的不良编码习惯是,子函数分配内存,将这段内存的首地址返回给主调函数,这样做的坏处很明显,调用者很容易忘记释放这段

2012-08-15 20:12:51 1656

原创 C99数据类型

【注意】C标准没有具体规定各种类型数据占用存储单元的长度,这是由各编译系统自行决定的。≥C标准只要求long型数据长度不短于int型,short型不长于int型。即sizeof(short)≤sizeof(int)≤sizeof(long)≤sizeof(long long)VC和gcc所占字节数:int shortlonglong longVC 4 248gc

2012-08-15 13:29:29 3084

原创 获取主机名、IP——gethostent(),gethostbyname(),gethostbyaddr()

1、原理:查询 /etc/hosts 等文件及 DNS or NIS 服务器The  domain  name  queries carried out by gethostbyname() and gethostbyaddr() use a combination of any or all of the name server named(8), a broken out line fro

2012-08-13 21:21:20 8680 1

原创 Linux C socket编程中几个常见的结构体定义

● sockaddr#include struct sockaddr{ sa_family_t sa_family; char sa_data[14];};● in_addr_t#include /* Internet address. */typedef uint32_t in_addr_t;struct in_addr{ in_addr_t s_addr;

2012-08-13 16:32:28 2770 1

C99标准-2007年版

ISO2007年发布的C99标准,英文原版,带详细标签

2012-04-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除