今天工作:
查看所有笔记
编写socket
找房子(德信东望、)
复习笔记:
-
const与#define的区别?
-
引用与指针的区别?
- 指针是一个实体,而引用仅是个别名;
- 引用使用时无需解引用(*),指针需要解引用;
- 引用只能在定义时被初始化一次,之后不可变;指针可变;
- 引用不能为空,指针可以为空;
- 使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用"*指针变量名"的 形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。
-
函数重载的原理是什么?通过什么方式可以取消名字改编?
-
new与malloc的差别?
-
预习C++程序内存布局,类与对象
log4cpp学习:
Log4cpp有三个主要的组件:日志类别(Category)、输出源(Appender)和布局(Layout)。
Zmq
- TCP多进程并发服务器
socket(…);
bind(…);
listen(…);
while(1){
accpet(…);
if(fork(…) == 0){
process(…);
close(…);
exit(…); } close(…);
}
2.TCP多线程服务器
socket(…);
bind(…);
listen(…);
while(1){
accpet(…);
if((pthread_create(…))!==-1){
process(…);
close(…);
exit(…); } close(…);
}
我是十成的穷人
IO多路复用
select/poll/epoll对比
vim关键字补全
YouCompleteMe 自动补全插件安装
perror(s) 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno的值来决定要输出的字符串。
int main(int argc, const char *argv[])
① 其中argc是指变量的个数,以例三为例:hello、a.out称为变量和./a.out程序运行的全路径名或程序的名字,argc即为3。
② argv是一个char *的数组,其中存放指向参数变量的指针,此处argv[0]指向./a.out的全路径名,argv[1]指向hello,argv[2]指向a.out
C语言中,要使用sizeof()不需要包含头文件,因为sizeof实际是C语言的一种单目运算符,也是关键字之一,可以直接使用。
使用read()时需要包含的头文件: <unistd.h>
在编写Linux下的网络程序时,使用了sockaddr_in结构,在头文件中声明了#include <sys/socket.h>,系统仍不承认sockaddr_in结构.因为代码中还少包含了一个头文件
#include <netinet/in.h>而 inet_addr 需要#include <arpa/inet.h>所以
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
C 库函数 char *fgets(char *str, int n, FILE *stream) 从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。