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。

相关推荐
我喜欢就喜欢7 小时前
DeepSeek Harness 开源贡献手记:从零到合入主线
开发语言·人工智能
坐看风云变幻7 小时前
《嵌入式工程师的软硬件修仙之路》第 2 期|C 语言筑基:指针与内存模型
c语言·开发语言
开开心心就好7 小时前
安卓PDF处理工具,免费无广告零弹窗
android·服务器·开发语言·算法·pdf·ocr
Pniubi7 小时前
HashMap扩容全流程
java·开发语言·数据结构
白杨尚青9 小时前
C++进阶篇(二):多态——虚函数、重写、虚函数表与三个经典坑(附完整代码仓库)
开发语言·c++·多态·虚函数·重写·动态绑定
WJ.Polar1 天前
Java封装、继承、多态
java·开发语言
摇滚侠1 天前
Java 中如何表示负数,有符号和无符号的区别,补码的计算规则,char byte short int long 的范围
java·开发语言
weixin_307779131 天前
C++代码实现MATLAB中的fitrtree函数功能
开发语言·c++·算法·matlab
爱读书的小胖1 天前
Codewars:Rot13(C)解题分析
c语言·开发语言
鸽鸽程序猿1 天前
【项目】【在线判题系统】b端题目增删改
开发语言·python