1.g++与gcc的区别,g++可以编译.c文件gcc可以编译.cpp文件吗?
答:g++可以编译.c文件和.cpp文件,在编译时会按照c++语法进行编译。
gcc可以编译.cpp文件但是在编译时需要手动链接c++标准库 -lstdc++,会按照c++语法进行编译。
2.进程与线程的区别?
进程是一个正在运行的程序,是系统进行资源分配的基本单位。
线程是进程内部的一条执行路径,是系统进行调度的基本单位。
3.多线程的坏处?
系统的执行路径变成了多条,执行的顺序具有一定的不确定性,每次执行的结果可能都会不同,会出现资源的访问出现了竞争,降低程序的可靠性和稳定性。
4.fork复制过程?
1.分配pid。
2.分配进程描述符,pcb同时会分配好内核栈
3.复制进程实体
4.用父进程内核栈上存放的现场信息,初始化为子进程的线程的现场信息
5.文件描述符对于服务器来说有什么作用?
在Linux中,一切皆文件,打开普通文件,管道文件或者建立一个套接字连接,都需要用到一个文件描述符来标识,对于服务器来说剩余文件描述符的多少可易理解为能和客户端建立的连接数。