随笔分类 - 编程基础
摘要:1、循环服务器模型:在同一个时刻只可以响应一个客户端的请求 1)循环服务器:UDP服务器UDP循环服务器的实现:UDP服务器每次从套接字上读取一个客户端的请求,处理, 然后将结果返回给客户机. 因为UDP是非面向连接的,没有一个客户端可以老是占住服务端. 只要处理过程不是死循环, 服务器对于每一个客户机的请求总是能够满足.算法示例如下:socket(...); bind(...); while(1) { recvfrom(...); process(...); sendto(...); }2)循环服务器:TCP服务器 TCP循环服务器的实现:TCP服务器接受一个客户端的连接,然后...
阅读全文
摘要:PrecedenceOperatorDescriptionExampleAssociativity1()[]->.::++--Grouping operatorArray accessMember access from a pointerMember access from an objectScoping operatorPost-incrementPost-decrement(a + b) / 4;array[4] = 2;ptr->age = 34;obj.age = 34;Class::age = 2;for( i = 0; i < 10; i++ ) ...for
阅读全文
摘要:1、写一个函数计算当参数为n(n很大)时的值 1-2+3-4+5-6+7……+nlong fn(long n) { if(n<=0) { printf("error: n must > 0); exit(1); } if(0==n%2){ return (n/2)*(-1); } else { return (n/2)*(-1)+n; }}
阅读全文
摘要:1、进程与线程的区别区别进程线程概念进程是表示资源分配的基本单位。线程是操作系统可识别的最小执行和调度单位。线程体现的特征是可执行的,是CPU资源的分派单位。关系一个进程可以有多个线程,但至少有一个线程。一个线程线程必定是属于某个进程的。资源分配资源只分配给进程,同一进程的所有线程共享该进程的所有资源。 同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。当进程结束时,所有的资源被回收。每个线程有自己独立的栈段,栈段又叫运行时段,用来存放所有局部变量和临时变量。当进程结束时,线程作为进程的资源也会被终止。系统 开销 创建或撤消进程时,系...
阅读全文
摘要:1、下面的程序并不见得会输出 hello-std-out,你知道为什么吗?123456789101112#include <stdio.h>#include <unistd.h>int main() {while(1){fprintf(stdout,"hello-std-out");fprintf(stderr,"hello-std-err");sleep(1);}return 0;}参考答案:stdout和stderr是不是同设备描述符。stdout是块设备,stderr则不是。对于块设备,只有当下面几种情况下才会被输入,1)遇
阅读全文
摘要:1、《Google C++ 编程风格指南》中关于头文件的包含规则:1、基本顺序:C标准库 –> C++标准库 –> 第3方库的头文件 –> 自己工程的头文件。如果是cpp文件最先包含的是首选的头文件,即例如a.cpp文件中应该优先包含a.h,首选的头文件是为了减少隐藏依赖。2、在包含头文件时应该加上头文件所在工程的文件夹名,即假如你有这样一个工程base,里面有一个logging.h,那么外部包含这个头文件应该这样写:#include "base/logging.h",而不是#include "logging.h" 这样做的目的或好处主
阅读全文

浙公网安备 33010602011771号