V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  codehz  ›  全部回复第 5 页 / 共 125 页
回复总数  2500
1  2  3  4  5  6  7  8  9  10 ... 125  
当然原则上 interpreter 可以 ET_EXEC 和 ET_DYN 里二选一即可,不过选 ET_EXEC 的话,会加载到固定地址上,可能会和实际可执行文件的地址冲突,ET_DYN 之后则可以允许在其他地址加载,没有规定 interpreter 在 ET_DYN 模式下是否可以是一个可执行文件,只要求不能递归指定 interpreter ,一般来说约定有 ET_DYN 没有 interpreter 表示它自身就是 interp ,可以参考内核里的注释
/*
* This logic is run once for the first LOAD Program
* Header for ET_DYN binaries to calculate the
* randomization (load_bias) for all the LOAD
* Program Headers.
*
* There are effectively two types of ET_DYN
* binaries: programs (i.e. PIE: ET_DYN with INTERP)
* and loaders (ET_DYN without INTERP, since they
* _are_ the ELF interpreter). The loaders must
* be loaded away from programs since the program
* may otherwise collide with the loader (especially
* for ET_EXEC which does not have a randomized
* position). For example to handle invocations of
* "./ld.so someprog" to test out a new version of
* the loader, the subsequent program that the
* loader loads must avoid the loader itself, so
* they cannot share the same load range. Sufficient
* room for the brk must be allocated with the
* loader as well, since brk must be available with
* the loader.
*
* Therefore, programs are loaded offset from
* ELF_ET_DYN_BASE and loaders are loaded into the
* independently randomized mmap region (0 load_bias
* without MAP_FIXED nor MAP_FIXED_NOREPLACE).
*/
常见 linux 发行版的 ld.so 也是可执行文件
你猜 INTERP 这个词扩展开是啥(
95 天前
回复了 Leon6868 创建的主题 JavaScript XMLHttpRequest 和 Fetch ,该用哪个?
fetch 可以用 abort controller 取消,上传进度比较麻烦,要自己拼接一个 readable stream
其实可以换一个思路,用 bottom sheet 去实现这个
@gorhom/bottom-sheet
这个库的 bottom sheet 支持 tab 和多个 scrollview (需要用它包里的或者用它提供的 hooks ,当然也不是非常完美,但我觉得很大程度上能用了)
然后虽然名字是 bottom sheet 但它可以常开,backdrop 也能放 header (和动画),可以说一次解决了可收缩 header 和 tab 的需求
@mouyase 这个问题连 youtube 都有,( iOS )建议直接无视(
把容易崩溃业务放到另一个域名(重要‼️,不然会一起被杀),然后开一个顶层 iframe 去加载,里面弄点心跳 postMessage 表示存活
warp 也可以,windows 版快出了(划掉)
101 天前
回复了 leehowlslee 创建的主题 程序员 前端 JS 异步问题请教
首先你肯定得重构代码,我这里提供一个较为简单的方案
开一个池子
class MyPromisePool {
#data: Promise<void>[] = [];
add(promise: Promise<void>) { this.#data.push(promise); }
async [Symbol.asyncDispose]() {
await Promise.all(this.#data);
}
}
在顶层函数使用,例如
async function entry() {
await using pool = new MyPromisePool();
//需要的时候就往 pool 里塞 promise
pool.add(asyncfn());
//尾部不用手动写其他代码,ts 会帮你生成合适的代码
//会自动调用 Promise.all 去等待结束
//侵入性更小* (意味着不需要去跟踪函数是怎么结束的,你直接写 return 就好
}
大概率就是用 chrome 原生的 view-transition api 做的过渡呗。。。
那玩意吧单独用其实挺难做对的,但是效果确实炫酷,还不需要写太多 js
不过我觉得运行时检查类型,可能对一些复杂的类型处理不好,比如 ts 那边经常用的一些伪名义类型技巧引入的虚拟元素(实际对象中不存在,仅为了触发 ts 的名义类型模式)
@CHTuring 看介绍实际上是支持 ts 的
运行时检查还是不太一样的吧,不过说到底也只是给开发阶段用的,ts 好好写能避免第一方的类型问题,但项目不可避免的会引入第三方代码或一些难以在 ts 框架下描述的类型,用了 any 一类的逃生仓,就有可能出现运行时类型不符合预期的情况
105 天前
回复了 lingeo 创建的主题 Python 如何为 Python 原生对象添加函数
https://github.com/xpodev/extype
也不是完全不行,用原生扩展包里改
105 天前
回复了 famanoder 创建的主题 前端开发 svg in JS 之图标的解决方案
@famanoder svg 转字体本身就比较灵车,彩色的更灵车了()
一般主要是用在 ligature 方面上的(也就是说在图标没加载出的时候显示文字,字体加载好了文字变成图标)在一些可访问性方面会好(屏幕阅读器用户)
105 天前
回复了 famanoder 创建的主题 前端开发 svg in JS 之图标的解决方案
字体图标是可以多颜色的,不然你以为彩色 emoji 是怎么实现的
就是 COLR 表去标记颜色就可以了
根据 json 的定义,就是只支持 utf-8 的,你 unicode 通过\u 转义没有改变它表达的还是 utf-8 文本的核心(也就是说不能用来传递非法 utf-8 的字符串),我能想象到的场景是某些信道不支持 utf-8 文本,这种情况下不如在输出 json 文本后进行一个后处理
理论上这个库应该能处理 unicode 的呀
因为 c++有引用的概念,所以可以用引用来表达返回左值的类型,而*p 作为表达式是左值表达式,decltype 对左值表达式使用时,返回引用用来区分其他值类别
109 天前
回复了 Authorization 创建的主题 程序员 有没有可视化编辑器推荐下
这种东西古代还可以搞搞,因为当时的网页都不怎么复杂,基本上还都可以做可视化(比如你现在在地址栏输入 javascript:document.body.contentEditable = 'true'就可以一键启用浏览器内置的编辑模式)
但很显然稍微复杂一些的页面就不太行了,很多布局不是能随便拖动的)
不过现在是 2024 年,理论上可以上 ai ,现在也有不少根据草图生成网页的模型
110 天前
回复了 dj112 创建的主题 分享发现 win 关闭显示器竟会降低功耗?
rdp 的时候是纯 cpu 渲染(包括集成显卡也不会被使用)
1  2  3  4  5  6  7  8  9  10 ... 125  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2219 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 103ms · UTC 05:58 · PVG 13:58 · LAX 22:58 · JFK 01:58
Developed with CodeLauncher
♥ Do have faith in what you're doing.