郑州做网站和推广哪家好wordpress 顶部栏

news/2025/10/4 22:25:32/文章来源:
郑州做网站和推广哪家好,wordpress 顶部栏,做网站接广告,哪家建设公司宣传搞得好文章目录 ISO文件格式光盘的基本概念光盘种类特点DVDR光盘使用windows调用Linux调用Linux平台下用到的C库:读取设备驱动列表向光驱中写文件 数字存储媒体快速发展的今天#xff0c;光驱的使用已经不像以前那样普及了。但是在数据备份、安装软件和操作系统、旧设备兼容等领域还… 文章目录 ISO文件格式光盘的基本概念光盘种类特点DVDR光盘使用windows调用Linux调用Linux平台下用到的C库:读取设备驱动列表向光驱中写文件 数字存储媒体快速发展的今天光驱的使用已经不像以前那样普及了。但是在数据备份、安装软件和操作系统、旧设备兼容等领域还有在使用。 ISO文件格式 在刻录普通文件到光盘时并不一定需要将它们制作成ISO文件。你可以使用光盘刻录软件直接添加文件到光盘中而无需事先制作ISO文件。而如果你希望确保光盘上的文件与多个操作系统兼容或者需要创建一个可引导的光盘那么制作成ISO文件可能是一个更好的选择。在这种情况下你可以在刻录软件中选择制作ISO映像然后再将该ISO文件刻录到光盘上。 制作成ISO文件的优点: 1.保持文件的完整性和一直性 2.兼容多个操作系统 3.可以跨平台使用 4.方便管理和存储 光盘的基本概念 Session(会话): 会话是光盘上的一个逻辑刻录单元。每次进行刻录都会创建一个新的会话。 Track(轨道): 轨道是光盘上的一个圆形路径沿着这个路径数据被刻录和读取。光盘上通常有许多并行的轨道每个轨道都划分为一系列的扇区。 Sector(扇区): 扇区是光盘上最小的物理存储单元是数据的基本单元。一个光盘被划分为许多扇区每个扇区通常包含2048字节(2KB)的数据。 光盘种类特点 根据光盘的写入类型、用途、容量光盘分为很多种类详细分类如下: CD(Compact Dis) 典型容量为700MB 1.CD-ROM(Read-Only Memory): 只读光盘 用于分发软件、应用和视频 2.CD-R(Recordable): 可以一次性写入, 写入之后不能修改,常用于备份音乐和数据 3.CD-RW(ReWritable): 可多次擦写和重写适合频繁修改数据 DVD(Digital Versaatile Disc) 单层容量为4.7GB 双层容量为8.5GB 1.DVD-ROM: 类似于CD-ROM只读光盘用于电影、软件等的分发。 2.DVD-R: 一次写入型用于备份和分发。 3.DVDR: 一次写入型与DVD-R相似。 4.DVD-RW: 可多次擦写和重写。 5.DVDRW 与DVD-RW类似。 Blu-ray Disc(BD) 单层容量为25GB 双层容量为50GB 1.BD-ROM: 用于高清电影和软件分发的一次写入型。 2.BD-R: 一次写入型用于高容量数据备份。 BD-RE(Rewritable): 可多次擦写和重写适用于频繁修改的数据。 HD DVD(已基本淘汰) HD DVD-ROM: 用于高清电影和软件分发的一次写入型。 HD DVD-R: 一次写入型用于备份和分发。 HD DVD-RW: 可多次擦写和重写。 Mini光盘 Mini CD 和 Mini DVD: 较小尺寸的光盘用于特定设备和应用。 DVDR光盘使用 这里以DVDR光盘为例说明一下光盘的使用和初始化初始化界面如下: 1.初始化为U盘模式之后我们就可以使用光盘反复读写文件了但每次读写都会消耗有限的磁盘读写空间。 2.初始化为用于CD/DVD播放机模式的时候就只可以写入一次了再次写入会将磁盘损坏。 DVDR采用了一种称为Incremental Sequential Recording(增量顺序写入)写入方式该方式不允许在会话关闭后继续写入。在DVDR上创建一个会话后一旦会话被关闭(Finalized)就不能再向该会话中追加写入新的数据。 windows调用 Windows操作光驱需要使用IMAPI(Image Mastering API) IMAPI是一个用于创建和写入光盘映像文件的Windows API。它可以用于将文件和文件夹内容写入光盘并创建可引导光盘。 1.创建映像对象 // 初始化 COM CoInitializeEx(NULL, COINIT_MULTITHREADED); IDiscMaster* pDiscMaster NULL; HRESULT hr CoCreateInstance(__uuidof(MsftDiscMaster2), NULL, CLSCTX_INPROC_SERVER, __uuidof(IDiscMaster2), (void**)pDiscMaster); if (SUCCEEDED(hr)) {// 成功创建 } else {// 创建失败 }2.获取光驱数量和ID IDiscMaster* pDiscMaster NULL; long totalDevices 0; //光驱数量 HRESULT hr CoCreateInstance(__uuidof(MsftDiscMaster2), NULL, CLSCTX_INPROC_SERVER, __uuidof(IDiscMaster2), (void**)pDiscMaster); hr m_discMaster-get_Count(totalDevices); BSTR uniqueID NULL; //光驱的ID hr m_discMaster-get_Item(0, uniqueID); 3.初始化刻录类 IDiscRecorder2* discRecorder NULL; BSTR recordUniqueId; SAFEARRAY* m_volumePathNames; HRESULT hr CoCreateInstance(__uuidof(MsftDiscRecorder2), NULL, CLSCTX_INPROC_SERVER, __uuidof(IDiscRecorder2), (void**)discRecorder); if (FAILED(hr)) return false;//初始化刻录类 discRecorder-InitializeDiscRecorder(recordUniqueId);//获取卷 discRecorder-get_VolumePathNames(m_volumePathNames); 参考项目 Linux调用 Linux平台下用到的C库: 1.libburn libburn 是一个用于写入光盘的库它支持 CD、DVD 和 Blu-ray。它提供了 C 接口可以在 C 中使用。libburn 允许你创建数据和音频光盘并提供了对光驱的低级别访问。 https://dev.lovelyhq.com/libburnia/libburn sudo apt-get install libburn-dev2.libcdio libcdio 提供了一种接口用于访问 CD-ROM 和 DVD-ROM 设备。它包括一组 C 函数允许你读取光盘的数据、音轨等信息。libcdio 还包含用于访问 ISO-9660 文件系统的功能。 https://www.gnu.org/software/libcdio/ sudo apt-get install libcdio-dev 3.libudev libudev 是一个用于管理设备的库你可以使用它来检测和获取有关设备的信息包括 USB 光驱。你可以通过监听 udev 事件来获取插拔 USB 设备的通知。 sudo apt-get update sudo apt-get install libudev-dev 读取设备驱动列表 1.使用libburn库读设备列表 使用libburn库读取USB光驱设备时异常无法读取USB光驱。 参考项目 #include iostream #include fcntl.h #include sys/types.h #include sys/stat.h #include unistd.h #include libburn/libburn.husing namespace burn; using namespace std;int main(int argc, char const *argv[]) {struct burn_drive_info *drive_list;unsigned int drive_count 0;int ret;//初始化libburn if (!burn_initialize()){cout init libburn failed endl;}//获取光驱的数量while(!burn_drive_scan(drive_list, drive_count));usleep(100002);if(drive_count 0){cout error to scan drive endl;return -1;}//抓取光驱ret burn_drive_grab(drive_list[0].drive, 1);if(!ret){cout error to grab the drive;return -1;}//释放光驱burn_drive_release(drive_list[0].drive, 1);//结束burn_finish();return 0; }2.使用liudev获取设备列表 #include iostream #include fcntl.h #include sys/types.h #include sys/stat.h #include unistd.h #include stdio.h #include string #include vector #include libudev.h #include linux/cdrom.h #include fcntl.h #include sys/ioctl.h /*** 获取所有光驱的列表*/ std::vectorstd::string GetOpticalDriveList() {udev* udev_context udev_new();if (!udev_context)return {};std::vectorstd::string drives;udev_enumerate* enumerate udev_enumerate_new(udev_context);if (enumerate){udev_enumerate_add_match_subsystem(enumerate, block);udev_enumerate_add_match_property(enumerate, ID_CDROM_DVD, 1);udev_enumerate_scan_devices(enumerate);udev_list_entry* devices udev_enumerate_get_list_entry(enumerate);udev_list_entry* dev_list_entry;udev_list_entry_foreach(dev_list_entry, devices){const char* path udev_list_entry_get_name(dev_list_entry);udev_device* device udev_device_new_from_syspath(udev_context, path);const char* devnode udev_device_get_devnode(device);if (devnode)drives.push_back(devnode);udev_device_unref(device);}udev_enumerate_unref(enumerate);}udev_unref(udev_context);return drives; }/*** 检查光驱是否可用*/ bool GetValidDrive(std::string drive) {if (!drive.empty()){int fd open(drive.c_str(), O_RDONLY | O_NONBLOCK);if (fd ! -1){if (ioctl(fd, CDROM_GET_CAPABILITY, 0) -1){close(fd);return false; }close(fd);return true;}else{return false;}}else{return false;} }3.使用libcdio库获取光驱数量 #include cdio/cdio.h #include cdio/cd_types.h #include cdio/logging.h//打印日志 static void log_handler(cdio_log_level_t level, const char message[]) {switch(level) {case CDIO_LOG_DEBUG:case CDIO_LOG_INFO:return;default:printf(cdio %d message: %s\n, level, message);} }int main(int argc, const char *argv[]) {char **ppsz_cd_drivesNULL, **c;//设置日志的回调函数cdio_log_set_handler(log_handler);//打印设备的CD驱动ppsz_cd_drives cdio_get_devices(DRIVER_DEVICE);if (NULL ! ppsz_cd_drives) for( c ppsz_cd_drives; *c ! NULL; c ) {printf(-- Drive: %s\n, *c);}//释放CD驱动cdio_free_device_list(ppsz_cd_drives);ppsz_cd_drives NULL;printf(-----\n);return 0; }向光驱中写文件 通过命令行向光驱中写文件 # -Z 向选中的设备中烧入一个初始的session # -M 添加一个新的Session, 选项来避免关闭会话从而在后续操作中保持会话打开 # -dvd-compat 提供对DVD-ROM的最大兼容性 # -speedN 指定光驱的刻录速度 # -R: 用于支持 UNIX 文件系统的长文件名和权限 # -J: 用于支持 Windows 文件系统的长文件名。# 初始化写入 growisofs -Z /dev/sr1 -R -J /home/users/file1 /home/users/file2 # 追加写入 growisofs -M /dev/sr1 -R -J /home/users/file3 通过libburn命令写入文件 #include iostream #include fcntl.h #include sys/types.h #include sys/stat.h #include unistd.h#include libburn/libburn.husing namespace burn; using namespace std;void burn_iso_to_disc(struct burn_drive *drive, char *iso_path) {struct burn_source *data_src NULL, *fifo_src NULL;struct burn_disc *target_disc NULL;struct burn_session *session NULL;struct burn_write_opts *burn_options NULL;enum burn_disc_status disc_state;struct burn_track *track;struct burn_progress progress;int fd 0;off_t fixed_size;int fifo_chunksize 2048;int fifo_chunks 2048;int padding 300 * 1024; //a padding of 300 kiB helps to avoid the read-ahead bugchar reasons[BURN_REASONS_LEN];struct stat stbuf;time_t start_time;target_disc burn_disc_create();session burn_session_create();burn_disc_add_session(target_disc, session, BURN_POS_END);track burn_track_create();burn_track_define_data(track, 0, padding, 1, BURN_MODE1);//打开需要写入的数据fd open(iso_path, O_RDONLY);if (fd 0)if (fstat(fd, stbuf) ! -1)if ((stbuf.st_mode S_IFMT) S_IFREG)fixed_size stbuf.st_size;else{cout error to open filedescriptor\n endl;return;}//转换文件为可写入的文件对象data_src burn_fd_source_new(fd, -1, fixed_size);if (data_src NULL){cout Could not open data source iso_path endl;return;}//安装fifo对象到数据源对象中fifo_src burn_fifo_source_new(data_src, fifo_chunksize, fifo_chunks, 0);if (fifo_src NULL){cout Could not create fifo object of 4 MB\n iso_path endl;return;}if (burn_track_set_source(track, fifo_src) ! BURN_SOURCE_OK){cout Cannot attach source object to track object\n;return;}burn_session_add_track(session, track, BURN_POS_END);burn_source_free(data_src);//检测驱动的状态disc_state burn_disc_get_status(drive);if (disc_state ! BURN_DISC_BLANK disc_state ! BURN_DISC_APPENDABLE){return;}//创建烧写配置burn_options burn_write_opts_new(drive);burn_write_opts_set_perform_opc(burn_options, 0); burn_write_opts_set_multi(burn_options, 0);burn_write_opts_set_simulate(burn_options, 0);burn_write_opts_set_underrun_proof(burn_options, 1);if (burn_write_opts_auto_write_type(burn_options, target_disc, reasons, 0) BURN_WRITE_NONE){cout FATAL: Failed to find a suitable write mode with this media.\n Reasons given: endl reasons endl;return;}burn_drive_set_speed(drive, 0, 0);burn_set_signal_handling((void*)libburner : , NULL, 0x30);cout Burning starts. With e.g. 4x media expect up to a minute of zero progress.\n;burn_disc_write(burn_options, target_disc);while (burn_drive_get_status(drive, NULL) BURN_DRIVE_SPAWNING)usleep(100002);while (burn_drive_get_status(drive, progress) ! BURN_DRIVE_IDLE){int size, free_bytes, ret;char *status_text;ret burn_fifo_inquire_status(fifo_src, size, free_bytes, status_text);if(ret 0)cout fifo status_text %% 100 - (100.0*free_bytes/size) fill endl;sleep(1);}//释放缓存burn_write_opts_free(burn_options);burn_source_free(fifo_src);burn_track_free(track);burn_disc_free(target_disc); }int main(int argc, char const *argv[]) {struct burn_drive_info *drive_list;unsigned int drive_count 0;int ret;//初始化if (!burn_initialize()){cout init burn drive failed endl;return -1;}//检测光驱while(!burn_drive_scan(drive_list, drive_count));usleep(100002);if(drive_count 0){cout error to scan drive endl;return -1;}//捕获光驱ret burn_drive_grab(drive_list[0].drive, 1);if(!ret){cout error to grab the drive;return -1;}//写文件burn_iso_to_disc(drive_list[0].drive, myiso.iso);//释放光驱burn_drive_release(drive_list[0].drive, 1);burn_finish();return 0; }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟商品购物网站源码网站设计参考网址

Nginx是一个高性能的web服务器和反向代理服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。 (1)更快 这表现在两个方面:一方面,在正常情况下&…

网站的字体做多大企业管理咨询类公司

本文实例讲述了Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法。分享给大家供大家参考,具体如下:前言:laravel创建数据库,实际可以手动创建,如古老的phpmyadmin 等均可以。一、数据库连接&#xff1a…

深入解析:从 CefSharp 迁移至 DotNetBrowser

深入解析:从 CefSharp 迁移至 DotNetBrowser2025-10-04 22:18 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

为什么很多地级市、县级市都把高铁站盖到了郊区呢 —— 以鞍山西站、海城西站为例

为什么很多地级市、县级市都把高铁站盖到了郊区呢 —— 以鞍山西站、海城西站为例每次假期都是要从高铁西站下车,每每如此总是免不得抱怨,毕竟这个郊区的西站无形之中就把回家的距离拉远了快30公里,如果短途做高铁,…

AtCoder Beginner Contest 426 实况记录 + A-D 题解

省流:只有 \(1000\) 分,遗憾离场。 这篇文章用来警示大家不要在比赛中犯相同的错误。 A. OS Versions AI 出来解释一下 \(\texttt{newer than}\) 翻译成“更新”何意味?请判断版本 \(X\) 与版本 \(Y\) 是否相同或更…

提示词攻击如何防范(2025):从 Indirect Prompt Injection 到 RAG 供应链的分层防御实战

2025 年 LLM 首要风险仍是 Prompt Injection / 间接提示词注入(Indirect Prompt Injection, IPI),RAG 供应链与外部工具风险 针对主要AI应用的暴露面。 需要对齐OWASP LLM01 / MITRE ATLAS / NIST AI RMF,并提供 *…

但行好事,莫问前程

但行好事,莫问前程又是一次忘了在第一天前写的考试。 这一个月经历了太多的跌宕起伏:从上一次考试的惊喜,到渐渐出现问题,再到逐渐回归正常的学习,最后在第二次考试之前又出现了大问题。具体问题是什么不好说。 我…

【STM32项目开源】基于STM32的智能养殖场环境监测系统 - 详解

【STM32项目开源】基于STM32的智能养殖场环境监测系统 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

wordpress地址为灰色免费智能seo收录工具

集成联调交付(Integrated Joint Debugging and Delivery)是软件开发过程中的一个阶段,主要涉及将不同的软件模块或组件整合在一起,并进行联合调试和测试,以确保它们能够作为一个整体正常工作。这个过程通常发生在开发周…

前端学习教程-Axios

Axios 是一个基于 Promise 的流行的 HTTP 客户端,用于浏览器和 Node.js 环境,支持 Promise API、拦截请求和响应、转换请求数据和响应数据等功能。 一、安装 Axios使用 npm 或 yarn 安装(适用于 Vue/React 等项目)…

镇江网站开发图片摄影网站

在2018杭州云栖大会的主论坛上,阿里云技术研发总经理蒋江伟发表了《飞天2.0,万物智能的基础服务》的主题演讲,从全连接、安全、简便、高速四个方面,阐述了飞天2.0网络的新特性。 蒋江伟表示,万物智能时代产生的海量数据…

网站域名怎么做杰恩设计网站是谁做的

JVM 案例 案例一:服务器内存不足,影响Java应用 问题: 收到报警,某Java应用集群中一台服务器可用内存不足,超过报警阈值。 排查过程: 首先,通过Hickwall查看该应用各项指标,发现无论…

网站是怎样制作的自媒体135手机版

电商技术揭秘相关系列文章 电商技术揭秘一:电商架构设计与核心技术 电商技术揭秘二:电商平台推荐系统的实现与优化 电商技术揭秘三:电商平台的支付与结算系统 电商技术揭秘四:电商平台的物流管理系统 电商技术揭秘五&#xf…

网站开发分包网站开发运营工程师待遇

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、默认成员函数二、构造函数构造函数的概念及特性 三、析构函数析构函数的特性…

网站如何交换链接临淄房产信息网123

文章目录 一、区别二、编写loader三、编写plugin参考文献 一、区别 前面两节我们有提到Loader与Plugin对应的概念,先来回顾下 loader 是文件加载器,能够加载资源文件,并对这些文件进行一些处理,诸如编译、压缩等,最终…

『回忆录』返校前夜 230102

经典佳作返校,一件每个周末都会经历的事情。而对于居家学习的我们,成了一个梦。 而这个梦,如今已变成现实。一个再平常不过的周末,我们上着竞赛。可是,中午wsh就把我们所有人叫到教室。 “因为疫情,学校要求你们…

断更

今天很忙,没时间学习

前端学习教程-环境配置

1 安装nvm(下载地址:https://github.com/coreybutler/nvm-windows/releases) 2.查看node和npm版本 3.配置npm registry 4.安装VSCode(https://code.visualstudio.com/) 5.VSCode安装插件:Live Server、Vue - Offic…

详细介绍:一篇文章讲清Prompt、Agent、MCP、Function Calling

详细介绍:一篇文章讲清Prompt、Agent、MCP、Function Callingpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Con…

docker单机部署hadoop 官方镜像3.3.6 过程问题记录 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …