open openat
发布日期:2021-09-16 04:37:03
浏览次数:4
分类:技术文章
本文共 1429 字,大约阅读时间需要 4 分钟。
static void transfer_vcpu(GuestLogicalProcessor *vcpu, bool sys2vcpu, Error **errp) { char *dirpath; int dirfd; dirpath = g_strdup_printf("/sys/devices/system/cpu/cpu%" PRId64 "/", vcpu->logical_id); dirfd = open(dirpath, O_RDONLY | O_DIRECTORY); if (dirfd == -1) { error_setg_errno(errp, errno, "open(\"%s\")", dirpath); } else { static const char fn[] = "online"; int fd; int res; fd = openat(dirfd, fn, sys2vcpu ? O_RDONLY : O_RDWR); if (fd == -1) { if (errno != ENOENT) { error_setg_errno(errp, errno, "open(\"%s/%s\")", dirpath, fn); } else if (sys2vcpu) { vcpu->online = true; vcpu->can_offline = false; } else if (!vcpu->online) { error_setg(errp, "logical processor #%" PRId64 " can't be " "offlined", vcpu->logical_id); } /* otherwise pretend successful re-onlining */ } else { unsigned char status; res = pread(fd, &status, 1, 0); if (res == -1) { error_setg_errno(errp, errno, "pread(\"%s/%s\")", dirpath, fn); } else if (res == 0) { error_setg(errp, "pread(\"%s/%s\"): unexpected EOF", dirpath, fn); } else if (sys2vcpu) { vcpu->online = (status != '0'); vcpu->can_offline = true; } else if (vcpu->online != (status != '0')) { status = '0' + vcpu->online; if (pwrite(fd, &status, 1, 0) == -1) { error_setg_errno(errp, errno, "pwrite(\"%s/%s\")", dirpath, fn); } } /* otherwise pretend successful re-(on|off)-lining */ res = close(fd); g_assert(res == 0); } res = close(dirfd); g_assert(res == 0); } g_free(dirpath); }转载地址:https://blog.csdn.net/wllabs/article/details/77943317 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月08日 05时53分45秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【Leetcode优先级队列】- 数据流的中位数
2021-06-29
【Leetcode优先级队列】-合并K个升序链表
2021-06-29
【多线程与高并发】-Java如何实现一个阻塞队列呢?
2021-06-29
【多线程高并发】-多线程实现数组的读与写
2019-04-26
【Java设计者模式】-Java实现订阅-发布者模式
2019-04-26
【计算机操作系统】-什么是系统调用呢?什么是用户态?什么是内核态?
2019-04-26
【计算机操作系统-进程管理】-进程通信是什么呢?
2019-04-26
Python程序元素分析
2019-04-26
TurtleArt美景图
2019-04-26
margin布局
2019-04-26
盒模型之border实践--三角形
2019-04-26
块状元素与内敛元素
2019-04-26
CSS控制段落和文字属性和背景
2019-04-26
Python语言开发工具
2019-04-26
Requests库的入门
2019-04-26
Robots协议
2019-04-26
Python网络爬虫的网站实例
2019-04-26
HTML学习思维导图
2019-04-26
h标签与p标签
2019-04-26