23111 网络编程 面试题

1.进程与线程的区别

进程之间资源是独立的,是资源分配的最小单位,进程的pid是FILE函数的返回的句柄,子进程初始资源是拷贝父进程的,进程分为用户空间和内核空间;

同一进程下的线程之间共享资源,是任务分配的最小单位,会出现竞态,不同线程之间多个参数传参需要借助结构体,线程资源消耗比进程低。

进程和线程都能多任务并发执行,都遵循时间片轮询,上下文切换原则

2.文件IO和标准IO的区别

标准IO依赖库函数,由程序执行的,标准IO内的输入会进入缓冲区,等待刷新时机统一输出,所以效率较高。标准文件是文件IO的二次封装,标准IO=文件IO+缓冲区。标准IO调用依赖文件指针

文件IO依赖系统调用,由内核执行的,每执行一次文件IO,就调用一次系统调用,效率较低。会有函数从用户空间向内核空间的切换。文件IO调用依赖文件描述符。

3.值传递和地址传递

值传递,若调用的函数没有返回值,其结果不会影响主函数,形参不能改变实参;

地址传递,传递的是一段地址,即使没有返回值,函数的形参调用有可能影响实参;

4.函数参数存在的意义

便于完成主调函数与被调函数之间的数据交流,

你可能感兴趣的:(面试,职场和发展)