File I/O for Game Developers: Past, Present, and FutureFILE I/O: PAST, PRESENT AND FUTURE CPPCON OCTOBER 3RD 2023 GUY DAVIDSON @HATCAT01INTRODUCTIONS • Head of Engineering Practice at Creative Assembly • 1980 – Acorn Atom • ISO/IEC JTC1/SC22/WG21 • BSI RAM, MORE DISK CAPACITY • Formatted i/o – scanf printf • Direct i/o – fread fwrite • File positioning – ftell fgetpos fseek fsetpos rewind • Unformatted i/o – fgetc/fgets fputc/fputs getchar putchar interface Secondary interfaceTHE 64-BIT ADDRESS SPACE • https://wg21.link/p1040 • “I’m very keen on std::embed. I’ve been hand-embedding data in executables for NEARLY FORTY YEARS now. — Guy "Hatcat"0 码力 | 64 页 | 2.69 MB | 6 月前3
Concurrency Patterns I0 码力 | 39 页 | 1.14 MB | 6 月前3
阮一峰 JavaScript 教程Math 对象 Date 对象 RegExp 对象 JSON 对象 面向对象编程 实例对象与 new 命令 this 关键字 对象的继承 Object 对象的相关方法 严格模式 异步操作 概述 定时器 Promise 对象 DOM 概述 - 2 - 本文档使用 书栈(BookStack.CN) 构建 致谢 当前文档 《阮一峰 JavaScript 教程》 由 进击的皇虫 控制其他大型应用程序(比如浏览器)的“脚本”。 JavaScript 也是一种嵌入式(embedded)语言。它本身提供的核 心语法不算很多,只能用来做一些数学和逻辑运算。JavaScript 本 身不提供任何与 I/O(输入/输出)相关的 API,都要靠宿主环境 (host)提供,所以 JavaScript 只合适嵌入更大型的应用程序环 境,去调用宿主环境提供的底层 API。 目前,已经嵌入 JavaScript (1)灵活的语法,表达力强。 JavaScript 既支持类似 C 语言清晰的过程式编程,也支持灵活的 函数式编程,可以用来写并发处理(concurrent)。这些语法特性已 经被证明非常强大,可以用于许多场合,尤其适用异步编程。 JavaScript 的所有值都是对象,这为程序员提供了灵活性和便利 性。因为你可以很方便地、按照需要随时创造数据结构,不用进行麻烦 的预定义。 JavaScript 的标准还在快速进化中,并不断合理化,添加更适用的0 码力 | 540 页 | 3.32 MB | 10 月前3
Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 12. 一个 I/O 项目:构建命令行程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 13.3. 改进之前的 I/O 项目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 应该是 String 类型,并不需要我们写出类型。另一方面,secret_number,是数字类型。几个数字类 型拥有 1 到 100 之间的值:32 位数字 i32;32 位无符号数字 u32;64 位数字 i64 等等。 Rust 默认使用 i32,所以它是 secret_number 的类型,除非增加类型信息,或任何能让 Rust 推断出不同数值类型的信息。这里错误的原因在于 Rust 不会比较字符串类型和数字类型。0 码力 | 562 页 | 3.23 MB | 25 天前3
廖雪峰JavaScript教程申明变量。这个设计错误带来 了严重的后果:如果一个变量没有通过 var 申明就被使用,那么该变量就自动被申明为全局变量: 1. i = 10; // i现在是全局变量 在同一个页面的不同的JavaScript文件中,如果都不用 var 申明,恰好都使用了变量 i ,将造 成变量 i 互相影响,产生难以调试的错误结果。 使用 var 申明的变量则不是全局变量,它的范围被限制在该变量被申明的函数体内(函数的概念将稍 如果 ' 本身也是一个字符,那就可以用 "" 括起来,比如 "I'm OK" 包含的字符 是 I , ' , m ,空格, O , K 这6个字符。 如果字符串内部既包含 ' 又包含 " 怎么办?可以用转义字符 \ 来标识,比如: 1. 'I\'m \"OK\"!'; 表示的字符串内容是: I'm "OK"! 转义字符 \ 可以转义很多字符,比如 \n 表示换行, 2. var i; 3. for (i=1; i<=10000; i++) { 4. x = x + i; 5. } 6. x; // 50005000 让我们来分析一下 for 循环的控制条件: i=1 这是初始条件,将变量i置为1; i<=10000 这是判断条件,满足时就继续循环,不满足就退出循环; i++ 这是每次循环后的递增条件,由于每次循环后变量i都会加1,因此它终将在若干次循环后不0 码力 | 264 页 | 2.81 MB | 10 月前3
Comprehensive Rust(简体中文) 202412. . . . . . . 18 2.3 使用 Cargo 在本地运行代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 I 第一天:上午 20 3 欢迎来到第一天 21 4 Hello, World 23 4.1 什么是 Rust? . . . . . . . . . . . . . . . . . . . . . 3 并发编程:上午练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 XIV 并发:下午 326 63 异步 Rust 327 63.1 async/await . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 63.4 任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 63.5 异步通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 64 Futures Control0 码力 | 359 页 | 1.33 MB | 10 月前3
Python 标准库参考指南 3.11.10 集合类型 --- set, frozenset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 i 4.10 映射类型 --- dict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 960 18 网络和进程间通信 963 18.1 asyncio --- 异步 I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963 18.1.1 运行器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122 18.4 select --- 等待 I/O 完成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123 18.4.1 /dev/poll0 码力 | 2399 页 | 11.19 MB | 9 月前3
Python 标准库参考指南 3.10.15 --- dict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 i 4.10.1 字典视图对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893 18 网络和进程间通信 897 18.1 asyncio --- 异步 I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897 18.1.1 协程与任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042 18.4 select --- 等待 I/O 完成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043 18.4.1 /dev/poll0 码力 | 2207 页 | 10.45 MB | 9 月前3
Python 标准库参考指南 3.11.10 4.12 类型注解的类型 --- Generic Alias 、Union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 i 4.12.1 GenericAlias 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896 18 网络和进程间通信 899 18.1 asyncio --- 异步 I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899 18.1.1 运行器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049 18.4 select --- 等待 I/O 完成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049 18.4.1 /dev/poll0 码力 | 2248 页 | 11.10 MB | 9 月前3
Python 标准库参考指南 3.8.20 6.6 stringprep --- 因特网字符串预备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 i 6.7 readline --- GNU readline 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . threading 模块。 . . . . . . . . . . . . . . . . . . . . . . 847 18 网络和进程间通信 849 18.1 asyncio --- 异步 I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849 18.2 socket . . . . . . . . . 958 18.4 select --- 等待 I/O 完成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992 18.5 selectors --- 高级 I/O 复用库 . . . . . . . . . . . . . . . . . . .0 码力 | 2052 页 | 9.74 MB | 9 月前3
共 573 条
- 1
- 2
- 3
- 4
- 5
- 6
- 58













