句柄,方便管理系统资源的标识符

句柄是什么?

句柄(handle)是一种标识或引用对象的方式,用来访问或操作系统底层资源。
Handle,就像门把手一样标识一个对象,并且方便操作对象。

1.windows

在windows中,句柄是对象的唯一标识符,通过句柄对对象进行操作和管理。

HWND hwnd = CreateWindow(L"Button", L"Click Me", WS_VISBLE | WS_CHILD, 10, 10, 100, 30, hwndParent, NULL, hInstance, NULL);
//L表示被定义为宽字符版本,有更好的兼容性,可以选择CreateWindowExW函数,或CreateWindowW()表明使用宽字符。
if(hwnd != NULL){
	//利用句柄操作窗口对象
	ShowWindow(hwnd, nCmdShow);
}

2.linux

在Linux中,一切皆文件,Linux将所有I/O操作都抽象为文件操作,因此句柄表现为文件描述符(File Descriptor),使用文件描述符来操作文件。

int fd = open("file_path.txt", O_RDONLY);
if(fd != -1){
	//使用文件描述符读取文件内容
	char buffer[1024];
	ssize_t bytesRead = read(fd, buffer, sizeof(buffer));
	//...其它操作
	
	//关闭文件
	close(fd);
}

上述代码通过read函数打开指定文件,并返回文件描述符存储在变量fd中。然后利用文件描述符fd执行I/O操作。

#include<unistd.h>
char buffer[size];//创建缓冲区
ssize_t read(int fd, void *buf, size_t count);
//三个参数:文件描述符, 接收数据的缓冲区地址, 期望读取的字节数
//返回值:实际读取的字节数

文件打开的主操作符,主操作符唯一。

主操作符参数说明
O_RDONLY只读方式打开
O_WRONLY只写方式打开
O_RDWR读写方式打开

文件打开的副操作符,副操作符可以同时使用多个

副操作符参数说明
O_APPEND读写文件,从文件尾部开始,写入的数据追加到文件尾部
O_TRUNC若文件以可写方式打开,会清空文件中的数据,并将文件长度记为0。即:截断写入,清空再写入
O_CREAT若路径中的文件不存在则自动创建该文件
O_EXCL如果与O_CREAT一起使用,则会检查文件是否存在,不存在则建立该文件,存在则报错。此外:同时设置O_CREAT与O_EXCL,需要将打开的文件设置为符号连接,否则打开失败。

文件权限标志,mode_t,是一个无符号八进制数,由三位数字组成,分别代表三类人的权限:所有者权限、同群组用户的权限、其他用户的权限。

权限数值权限说明
4拥有读权限
2用于写权限
1拥有执行权限
如:764表示文件所有者拥有全部权限,群组用户拥有读写权限,其他用户拥有读权限。

参考文章

句柄是什么?一文带你了解!——陈有余Tech
Linux open()函数各参数说明 ——mainn

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值