摘要:
注: 从c++11开始, auto_ptr已经被标记为弃用, 常见的替代品为shared_ptr shared_ptr的不同之处在于引用计数, 在复制(或赋值)时不会像auto_ptr那样直接转移所有权 auto_ptr auto_ptr实际也是一种类, 拥有自己的析构函数, 生命周期结束时能自动释 阅读全文
摘要:
SIGIO信号 信号驱动式I/O不适用于TCP套接字, 因为产生的信号过于频繁且不能准确判断信号产生的原因. 设置信号驱动需把sockfd的非阻塞与信号驱动属性都打开 server sockfd单独提出来作为全局变量, 便于sig_io处理函数访问 num变量用于设置当前可读数据报数量 struct 阅读全文
摘要:
简单说明 TCP带外数据也称为紧急模式, 常用于中断某些操作, 如中断ftp文件的传输. 调用系统函数时我们需要处理一些信号操作, 而TCP带外数据可理解为由本地向对端发送一个signal, 让对端能采取相应的处理措施. 接收到带外数据时, 系统会产生SIGURG信号. TCP带外数据就是一个普通的 阅读全文
摘要:
测试准备 UDP广播常用于局域网内, 一次性给局域网内的所有主机发送消息 如果只有一台电脑, 可以在手机里安装一个UDP接收端app 注: 如果linux与windows机子互相ping不通, 可能是杀毒软件的原因 实例 与普通UDP client相比, 有两个不同: 1.目标地址为xxx.xxx. 阅读全文
摘要:
使用方法 首先要生成一个可用的套接字描述符,TCP或UDP的都可以,为方便一般使用UDP套接字描述符 然后调用ioctl函数获取所有网络接口列表(struct ifconf), 网卡越多列表数目越多 再次调用ioctl函数从一个个网络接口中获取子项(struct ifreq)进行输出 每获取一个子项 阅读全文
摘要:
动态库 创建动态库: shared 指明生成动态库 编译: L. 表示需要的动态库从当前目录寻找 运行: 运行前需要把libhello.so复制到$PATH中,这里有两种选择 a.把库文件复制到查找路径中 cp libhello.so /usr/lib/ b.把当前路径添加到查找路径中 export 阅读全文
摘要:
初始化 第一种情况:初始化数据小于数组长度 如前面两个初始化的例子,这两个例子的效果一样,前五个字符为Hello,剩余的用'\0'填充 第三行与第四行,都只指定了第一个字符,剩余的全部用'\0'填充。第四个例子相当将整个数组初始化为'\0' 第二种情况:初始化数据等于或超过数据长度 这种情况下,超出 阅读全文
摘要:
时间有关的数据类型 time_t: long类型, 记录从1970年1月1日0时0分0秒到现在经过的秒数,在32位的long类型平台上2038年时间溢出 struct tm: 符合人类习惯的记录方式 相关函数的重要区别 ctime(time_t \ p):与asctime(localtime(tim 阅读全文
摘要:
关于结束符 str_开关的函数在遇到'\0'会结束运行,而mem_开关的函数会一直运行到指定的数量 strcpy函数在复制完后在结尾会加上一个\0 strncpy函数在复制时, 如果实际可复制字符少于指定的字符数, 则在结尾一直添加\0直到达到指定值; 如果实际可复制字符超过指定值,则只复制到指定值 阅读全文
摘要:
windows下源文件编码问题 在windows下不要直接右击桌面创建.txt再改成.c,这种方式容易引起编码问题 windows下gvim的设置: 先打开gvim再用:w newfile.c这种方式来创建新文件 vimrc文档中设置保存文件的编码方式为chinese或gbk set fileenc 阅读全文