c语言-1
·
1.linux中"一切都是文件",是设计哲学,fd 是文件描述符,是进程用来"操作文件"的数字编号。
2.为什么说"Linux 一切都是文件"
在Linux里,不只是普通文件(txt,jpg),下面这些全都被当成文件来读写:
·硬件设备:硬件、键盘、显示器、网卡
·管道、套接字(socket)
·进程信息、系统状态
·终端、打印机、声卡
统一用一套接口:
open/read/write/close/ioctl
好处:
1)一套api操作所有资源,简单统一
2)可以用重定向、管道、shell 命令直接操作硬件和进程
3)驱动开发、上层应用都遵循同一套模型
---
fd是“万能I/O把手”,socket是“网络专用把手”
---
C语言项目中的作用和定位:
fd:操作系统底层I/O句柄,用于读写文件、管道、标准输入输出等。常用于文件操作、重定向、select/poll多路复用(其中fd集可包含socket fd)。
Socket:网络编程核心抽象,用于实现客户端/服务器通信。需要设置地址、端口、协议,调用bind/connect/listen/accept等。
定位:在实际项目中,如果你写网络程序,你会创建socket fd;之后你可以把这个fd传给read/write,或者用send/recv,也可以将它加入fd_set进行select。理解socket是fd的一种,有助于统一处理I/O多路复用和非阻塞I/O。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)