木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java3年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql4年进入店铺

随笔分类 -  C/CPP函数

摘要:可以通过time()函数来获得计算机系统当前的日历时间(Calendar Time),处理日期时间的函数都是以本函数的返回值为基础进行运算。其原型为:time_t time(time_t * t);如果你已经声明了参数t,你可以从参数t返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例如:1970年1月1日0时0分0秒)到现在此时的秒数。如果参数为空(NULL),函数将只通过返回值返回现在的日历时间,比如下面这个例子用来显示当前的日历时间:#include int main(void) { time_t t; t=time(NULL); pri... 阅读全文
posted @ 2013-07-24 17:29 C语言程序 阅读(1003) 评论(0) 推荐(0) 编辑
摘要:问题:c++中输出通常信息的函数为cout,比如:std::cout 用于对cout进行重定向,操作符2>对cerr进行重定向。因为,系统的SHELL里一般约定1为正确流,2为错误流。而1是作为缺省值使用可以省略不写。2. 示例代码:# test_cerr.cpp#include using namespace std; int main() { cout test_cerr.txthello world---coutu1204@u1204-zhw:~/wrk/tmp/cpp_src/cpp_exer$ ./test_cerr > test_cout.txthello worl.. 阅读全文
posted @ 2013-05-27 11:13 C语言程序 阅读(1928) 评论(0) 推荐(0) 编辑
摘要:在一个 CLIENT/SERVER模型的网络应用中,客户端的调用序列大致如下: socket -> connect -> recv/send -> close 其中socket没有什么可疑问的,主要是创建一个套接字用于与服务端交换数据,并且通常它会迅速返回,此时并没有数据通过网卡发送出去,而紧随其后的connect函数则会产生网络数据的发送,TCP的三次握手也正是在此时开始,connect会先发送一个SYN包给服务端,并从最初始的CLOSED状态进入到SYN_SENT状态,在此状态等待服务端的确认包,通常情况下这个确认包会很快到达,以致于我们根本无法使用netstat命令看到 阅读全文
posted @ 2013-02-05 11:09 C语言程序 阅读(4870) 评论(0) 推荐(0) 编辑
摘要:已知strcpy函数的原型是char* strcpy(char* strDest,const char* strSrc);1.不调用库函数,实现strcpy函数2.解释为什么要返回char*;1.strcpy的实现代码char* strcpy(char* strDest,const char* strSrc){if((strDest == NULL) || (strSrc == NULL)) //[1] throw "Invalid Arguments"; //[2]char* strDestCopy = strDest; //[3]while((*strDest++ = 阅读全文
posted @ 2012-12-04 10:14 C语言程序 阅读(448) 评论(0) 推荐(0) 编辑
摘要:1. 我们都知道,普通的传值参数是由行参传给实参;编译器在函数内部为每一个参数产生一个临时变量,将每一个参数压入栈(stack)中,将实参的数值保存到临时变量中。所以才有在低端8位机中,对参数的数量有比较严格的限制,因为栈的深度非常有限;当然,在通用机上也有同样的问题,参数过多不合适,但通用机的栈的深度比低端机大多了;2. 引用做参数传递的是变量的地址;实质上传递的是变量的指针;引用作为参数的好处是减少了临时变量对内存的开销,因此常用于对大对象的操作;而常引用做参数就是保护参数不被修改;附:堆和栈的知识一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编译器自动 阅读全文
posted @ 2012-08-16 11:12 C语言程序 阅读(957) 评论(0) 推荐(0) 编辑
摘要:printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。②-:有-表示左对齐输出,如省略表示右对齐输出。③0:有0表示指定空位填0,如省略表示指定空位不填。④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。未指定n时,隐含的精度为n=6位。⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。---------------------------------------格式字符格式字符用以指定输出项的数据类型和输 阅读全文
posted @ 2012-08-11 07:25 C语言程序 阅读(311) 评论(0) 推荐(0) 编辑
摘要:问题:frm_package.c中调用了memset()和memcpy()函数,但是没有包含相应的头文件,编译时出现错误:dingq@wd-u1110:~/hwsvn/2sw/1prj_linux/pdu/src/branches/pdu-isocket/isocket$ make gcc -g3 -Wall -o0 -c nettrans.c -o nettrans.o gcc -g3 -Wall -o0 -c tcpclient.c -o tcpclient.o gcc -g3 -Wall -o0 -c frm_package.c -o frm_package.o frm_package. 阅读全文
posted @ 2012-08-02 15:02 C语言程序 阅读(1493) 评论(0) 推荐(0) 编辑
摘要:popen函数执行命令后,返回一个指向该命令输出的文件句柄,接下来就可以用fgets等文件操作函数去读取输出结果。#include FILE *popen(const char *command, const char *type); int pclose(FILE *stream);type的参数只能是“r”或"w"例如 #include #include int main(int argc,char*argv[]){ FILE *fstream=NULL; char buff[1024]; ... 阅读全文
posted @ 2012-05-03 13:14 C语言程序 阅读(1146) 评论(0) 推荐(0) 编辑
摘要:Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生则与阻塞方式相同,若事件没有发生则返回一个代码来告知事件未发生, 阅读全文
posted @ 2012-03-13 14:57 C语言程序 阅读(1155) 评论(0) 推荐(1) 编辑
摘要:名称malloc,free,calloc,realloc--分配和释放动态内存概要#include void *malloc(size_tsize);void free(void *ptr);void *realloc(void*ptr, size_t size);void *calloc(size_tnmemb, size_tsize);描述malloc()函数分配size个字节的内存并返回指向已分配内存的指针。该内存未初始化。如果size为0,malloc()或者返回空指针NULL,或者返回能成功传给free()函数的唯一的指针值。free()函数释放指针ptr指向的内存空间,ptr必须是 阅读全文
posted @ 2012-03-02 10:59 C语言程序 阅读(634) 评论(0) 推荐(0) 编辑
摘要:calloc(配置内存空间)相关函数:malloc,free,realloc,brk表头文件:#include 定义函数:void *calloc(size_t nmemb,size_t size);函数说明:calloc()用来配置nmemb个相邻的内存单位,每一单位的大小为size,并返回指向第一个元素的指针。这和使用下列的方式效果相同:malloc(nmemb*size);不过,在利用calloc()配置内存时会将内存内容初始化为0。返回值:若配置成功则返回一指针,失败则返回NULL。范例:/* 动态配置10个struct test 空间*/#includestruct test{int 阅读全文
posted @ 2012-01-05 10:28 C语言程序 阅读(356) 评论(0) 推荐(0) 编辑
摘要:index(查找字符串中第一个出现的指定字符)相关函数:rindex,srechr,strrchr表头文件:#include定义函数:char * index( const char *s, int c);函数功能:index()用来找出参数s字符串中第一个出现的参数c地址,然后将该字符出现的地址返回。字符串结束字符(NULL)也视为字符串一部分。返回值:如果找到指定的字符则返回该字符所在地址,否则返回0。范例:#include #include int main(){ char s[] ="0123456789012345678901234567890"; char *p 阅读全文
posted @ 2012-01-04 18:12 C语言程序 阅读(3303) 评论(0) 推荐(0) 编辑
摘要:众所周知,sprintf不能检查目标字符串的长度,可能造成众多安全问题,所以都会推荐使用snprintf.自从snprintf代替了sprintf,相信大家对snprintf的使用都不会少,函数定义如下:int snprintf(char*str, size_t size,constchar*format, ...);函数说明:最多从源串中拷贝size-1个字符到目标串中,然后再在后面加一个0。所以如果目标串的大小为size的话,将不会溢出。函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值。但是大家在使用snprintf的时候是否真的清楚参数里size的意思呢?看下面的例子:假设我 阅读全文
posted @ 2011-12-31 14:21 C语言程序 阅读(5148) 评论(1) 推荐(1) 编辑
摘要:备注:该文简洁、形象地描述了socket常用函数的功能。有助于提纲挈领地掌握这些函数。概述socket() --得到文件描述符,架设好一部电话(服务器/客户端用,在本地建立一个套接字,作为一条通讯线路的一个端点)!bind() --有事请拨本电话(电话号码:IP,分机:Port)(主要用于server端,将文件描述符和地址信息主要是端口进行绑定)connect() --Hello(client端使用,用未命名套接字与服务器端监听套接字建立链接)!listen() --有人给我打电话吗(server端使用,创建等待队列存放未处理的客户端请求)?accept() --"Thank you 阅读全文
posted @ 2011-12-21 16:56 C语言程序 阅读(526) 评论(0) 推荐(0) 编辑
摘要:名称bind()把名字和套接字相关联使用格式#include #include int bind(int sockfd,const struct sockaddr *addr,socklen_t *addrlen);功能描述当用socket()函数创建套接字以后,套接字在名称空间(网络地址族)中存在,但没有任何地址给它赋值。bind()把用addr指定的地址赋值给用文件描述符代表的套接字sockfd。addrlen指定了以addr所指向的地址结构体的字节长度。一般来说,该操作称为“给套接字命名”。通常,在一个SOCK_STREAM套接字接收连接之前,必须通过bind()函数用本地地址为套接字命 阅读全文
posted @ 2011-12-21 11:23 C语言程序 阅读(7047) 评论(0) 推荐(0) 编辑
摘要:名称accept()接收一个套接字中已建立的连接使用格式#include #include int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);功能参数描述accept()系统调用主要用在基于连接的套接字类型,比如SOCK_STREAM和SOCK_SEQPACKET。它提取出所监听套接字的等待连接队列中第一个连接请求,创建一个新的套接字,并返回指向该套接字的文件描述符。新建立的套接字不在监听状态,原来所监听的套接字也不受该系统调用的影响。备注:新建立的套接字准备发送send()和接收数据recv()。参数:sockfd 阅读全文
posted @ 2011-12-20 19:13 C语言程序 阅读(8148) 评论(0) 推荐(1) 编辑
摘要:getopt被用来解析命令行选项参数。就不用自己写东东处理argv了。#include extern char *optarg; //选项的参数指针 extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。 extern int opterr, //当opterr=0时,getopt不向stderr输出错误信息。 extern int optopt; //当命令行选项字符不包括在optstring中或者选项缺少必要的参数时,该选项存储在optopt中,getopt返回'?’、 int getopt(int argc, char 阅读全文
posted @ 2011-12-20 14:43 C语言程序 阅读(575) 评论(0) 推荐(0) 编辑
摘要:文中为了阅读顺畅,某些地方有所更改。fread函数和fwrite函数1.函数功能 用来读写一个数据块。2.一般调用形式 fread(buffer,size,count,fp);格式:size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ); fwrite(buffer,size,count,fp);3.参数说明 (1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。buffer的最小大小是(size*count)个字节; (2)size:单个数据项包含的 阅读全文
posted @ 2011-12-17 16:07 C语言程序 阅读(1543) 评论(0) 推荐(0) 编辑

木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java3年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql4年进入店铺
点击右上角即可分享
微信分享提示