摘要: 在数组和大于一个字节的整数memmove中,注意大小端问题#include <arpa/inet.h>int a = htons(a); // 16位int a = htonl(a); // 32位无论机器是大小端,将a转换为大端。小端:低地址放低位,高地址放高位。 大端:低地址放高位,高地址放低位 阅读全文
posted @ 2017-11-29 21:55 elseliving的记录 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 有一个问题:在64位系统中,有一个c文件中的一个函数函数声明是返回void*的,但是由于使用之前没有声明,导致函数返回值默认为int,指针被强制转为32位整数,出错。 参考知乎:在C语言中,函数调用前是否必须先声明?https://www.zhihu.com/question/35890756接下来 阅读全文
posted @ 2017-11-29 21:53 elseliving的记录 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 如何撤销git add,不小心执行了git add . 操作,现在怎么样可以将git add 撤销回来版本回退 git reset --hard 版本号绿字变红字(撤销add) git reset HEAD红字变无 (撤销没add修改) git checkout -- 文件git pull之前可以g 阅读全文
posted @ 2017-11-29 21:53 elseliving的记录 阅读(159) 评论(0) 推荐(0) 编辑
摘要: A stream socket -- provides two-way, sequenced, reliable, and unduplicated flow of data with no record boundaries. A stream operates much like a telep 阅读全文
posted @ 2017-11-29 21:52 elseliving的记录 阅读(216) 评论(0) 推荐(0) 编辑
摘要: | unsigned char | unsigned short | unsigned int | unsigned long | unsigned long long 32bit | 1(byte) 2 4 4 864bit | 1 2 4 8 8 阅读全文
posted @ 2017-11-29 21:51 elseliving的记录 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 在脚本中,可以用 exit 0来返回,如果没有exit,那么脚本的返回值就是最后一个命令的返回值。如果一个脚本最后一个命令是echo,那么这个脚本肯定是返回0,也就是执行成功了,往往和我们预期的不一样。对于嵌套的脚本,会层层返回,一直到最初始的脚本。对于上一个脚本,如果用exit,那么只是返回了本脚 阅读全文
posted @ 2017-11-29 21:49 elseliving的记录 阅读(16735) 评论(0) 推荐(1) 编辑
摘要: shell 下 定义变量后直接引用 $ashell中 ‘‘ 中执行命令,tr A-Z a-z 将大写全部转为小写export Platform=`echo $1 | tr A-Z a-z`export CPU=`echo $2 | tr a-z A-Z`source filename 与 sh fi 阅读全文
posted @ 2017-11-29 21:49 elseliving的记录 阅读(11170) 评论(0) 推荐(0) 编辑
摘要: You shouldn't be sending a pointers to another process, they have no meaning (or point to something very different) in another process' address space. 阅读全文
posted @ 2017-11-29 21:49 elseliving的记录 阅读(85) 评论(0) 推荐(0) 编辑
摘要: ls nodir 1> filename.txt 2>&1上面例子把 标准输出 重定向到文件 filename.txt,然后把 标准错误 重定向到 标准输出,所以最后的错误信息也通过标准输出写入到了文件中。ls a > 1.log 将正确输出到1.log,错误输出到屏幕。ls a >1.log 2> 阅读全文
posted @ 2017-11-29 21:48 elseliving的记录 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 两个模块函数交互如何调用其他模块的函数。一般如果自己是主要提供接口服务的,那么调用使用者模块的函数,叫回调。这样可以保证一定的逻辑顺序。比如A、B、C 3个模块是从高到低的逻辑。比如A调用B,B调用C,C回调B,B回调A。如果是A调用B,再说B调用A,体现不出逻辑是从A到B的。如果是从自己调用他人的 阅读全文
posted @ 2017-11-29 21:46 elseliving的记录 阅读(1938) 评论(0) 推荐(1) 编辑
摘要: 从周五搞到周一,解决了gtest段错误的问题。当malloc申请的内存,出现读写错误或者不能释放时,可以肯定是该内存被污染了。由于写其他的地址越界了,写到了该内存,导致该内存不能读写或者释放。因此要注意边界条件。 在makefile中写头文件路径的时候,不仅中间的 拼接符号 \ 后面不能有空格,最后 阅读全文
posted @ 2017-11-29 21:46 elseliving的记录 阅读(786) 评论(0) 推荐(0) 编辑
摘要: Makefile中wildcard的介绍在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使 阅读全文
posted @ 2017-11-29 21:46 elseliving的记录 阅读(3794) 评论(0) 推荐(0) 编辑
摘要: 目前和select配合的socket都是阻塞的。select监控放入 set中的fd,select后,没有相应状态的fd被移除,还在set中的fd,表示可读或者可写,因此能够用 FD_ISSET来判断是否可读或可写。也因此,每一次select后必须清除所有fd并重新加入要监控的fd。一下子清晰了。 阅读全文
posted @ 2017-11-29 21:41 elseliving的记录 阅读(1302) 评论(0) 推荐(0) 编辑
摘要: //insert p_node after the p_previous node //没有头结点的情况复杂多了,因为要考虑在头结点前或者后插入,现在只用考虑是不是在最后插入。 //没有头结点的话,连删除第一个节点都很困难,因为要判断头结点是不是为空。总之,没有头结点要考虑两头的事情,很麻烦,有了头 阅读全文
posted @ 2017-11-29 21:38 elseliving的记录 阅读(1413) 评论(0) 推荐(0) 编辑