V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  geelaw  ›  全部回复第 4 页 / 共 172 页
回复总数  3427
1  2  3  4  5  6  7  8  9  10 ... 172  
77 天前
回复了 vituralfuture 创建的主题 Linux Linux 是如何隐藏`DIR`结构体定义的
举个例子:

// a.c
#include<malloc>
typedef struct a { int b; } a;
a *foo(void)
{
return (a *)malloc(sizeof(a));
}

编译 a.c 之后得到 a.obj ,删去 a.c

// b.c
typedef struct a a;
a *foo(void);
int main(void) { foo(); }

编译 b.c 并和 a.obj 链接。结果是 b 可以正常执行,在 b 产生的时候不需要 a.c 的存在。

现在的状况就是 opendir 在别人写的 a.c 里面,但别人没有提供 a.c 而是提供了 a.obj ,而别人提供的 .h 是上面 b.c 的前两行。
77 天前
回复了 vituralfuture 创建的主题 Linux Linux 是如何隐藏`DIR`结构体定义的
C 语言不要求所有 struct 都有定义,只要声明之后就可以使用指针。(当然用 sizeof 作用,或者定义该类型对象或数组,是需要该结构体的定义的。)所谓它是 opaque 就是说不提供定义。

从 C 的 ABI 的角度,结构体指针和 void 指针没啥区别。实现 opendir 的人可能知道 DIR 的定义,并分配好内存、填充好数据返回给调用者。
第一个问题就是你是否有足够的磁盘空间,如果有的话,完全可以先排完序再说。

假设你使用 64 位操作系统,先分别排序两个 csv ,这样做:

1. 把 x.csv 映射到虚拟内存。
2. 扫描一次,计算行数 n 。
3. 建立一个长度是 8n 字节的文件 x.dat ,映射到内存,把它看成长度是 n 的 uint64 数组 index 。
4. 扫描 x.csv ,在 index[i] 放置第 (i-1) 行开始的位移。
5. 对 index 的元素 z 按 x.csv 从 z 处提取出的字符串升序排序。
6. 保存 x-sorted.csv 。

上述操作需要 O(n log n) 的时间。

然后同时把 a.csv, a.dat, b.csv, b.dat 映射到虚拟内存,并用有序合并算法计算需要的三个结果,这需要 O(n) 的时间。

额外的磁盘空间复杂度是 O(n),具体来说,显然不会超过 20 GB 。
80 天前
回复了 CNM47589 创建的主题 Windows Windows 竟没有一个匹敌 downie 的下载软件
看了楼主的提问才发现 flvcd 已经停止服务了,一个时代的落幕。Downie 跟 IDM 是同价位的,另外就是下载视频和音轨之后可以用 ffmpeg 合成,下载可以用 youtube-dl 实现。
81 天前
回复了 jeesk 创建的主题 git git 版本管理中历史搜索
取决于你说的“提交的代码”是什么意思——严格来说每个 git commit 记住的是当时所有的文件,因此同一段代码通常会出现在数个 commits 里面,这大概不是楼主想要的。

如果是要搜索 diff patch text 里面的内容,可以用 git log 的 -G 。

如果你要找的代码片段存在于一个已知的 commit 里面,可以在那个 commit 上 git blame 那个代码文件,发现那段代码被 Git 认为最后一次修改的 commit 。
84 天前
回复了 KIMI360 创建的主题 PowerShell 求助:如何阻止 Powershell 生成 tmp 文件
你说的“不管是在 wt 或者 powershell 中”,后面一种是指 conhost.exe 里与 PowerShell 交互吗?卸载 Windows Terminal 会发生什么?
翻译专名的几个方案是名从主人、约定俗成、强势文化赋名。乔丹(人)和约旦(国)目前都已经进入约定俗成阶段了。

@adoal #2 如果重新翻译 Jordan 标准形的话我会译作“呦呵当标准形”。
84 天前
回复了 KIMI360 创建的主题 PowerShell 求助:如何阻止 Powershell 生成 tmp 文件
@KIMI360 #8 第二个问题:应该检查的事 tmp 文件的属性,删除失败之后改变属性/权限,不会导致再次尝试删除。

另外的问题就是:新建一个用户并在新用户里运行 PowerShell ,这个问题在新用户里是否存在?这一步是要决定问题在于当前用户的配置还是当前系统的配置。新用户应该建立为非管理员账户。
84 天前
回复了 KIMI360 创建的主题 PowerShell 求助:如何阻止 Powershell 生成 tmp 文件
@KIMI360 #6 不设置这些呢?

那些文件可能是某段代码反复调用 GetTempFileName 并设置 prefix 等于 PS 的结果,这个 Win32 API 的效果是在临时文件夹建立 <prefix><四位十六进制数>.tmp 的新文件,慢大概是因为重名太多所以每次调用都要反复尝试。

已知 Windows PowerShell 5.1 (从版本为 5.1 推断应该是 Windows PowerShell 而不是新的开源版 PowerShell )默认配置下(包括 PSReadLine 自动开启但没有其他配置)不会有这个现象。

另外可能的原因是实际上某段代码确实会建立这种临时文件,但也会同时删除,然而出于某些原因删除失败。楼主可以检查一下这些临时文件的访问控制权限,是否有拒绝某些安全主体删除,文件是否有只读、隐藏、系统属性。
84 天前
回复了 KIMI360 创建的主题 PowerShell 求助:如何阻止 Powershell 生成 tmp 文件
比如楼主可以透露一下自己用的是哪个版本的 PowerShell ?文件名除了以 PS 开头还有什么特征,文件内容大概是什么样子的?建立一个新的用户账户再打开 PowerShell 会不会有此现象?不要期待 psychic debugging 。

另外在 Windows 上删除临时文件可以直接 del "$env:TEMP\ps*.tmp" -fo

可以推断是 Windows ,主要是因为默认情况下 macOS 和 Linux 都不是用 TEMP 环境变量表示临时目录的。
发现 a 调用了某个在 a 没有定义的函数 b ,什么信息让你确定 b 不是 a 的一部分?取决于你已经知道的 b 的信息,进一步获得信息的方式也不同。

如果发现 a 运行的某时刻,程序计数器变成了一个地址 b ,想要知道地址 b 来自哪个动态库,可以下断点,找到你需要的地址,然后调用 dladdr 。
@MrSheng #41 你提出“辩证”,我不懂这个词,所以不会随便使用。

>问题一:如何定义“完整性”,占比达到 100%,90% 还是 60% 或者更低。如果你的回答是“辩证”看待,那么没有讨论的意义,因为“辩证”总是正确的。

我的场景里面完整就是所有、一切、100%,你自然可以提问如果是 99.99% 是怎么样(甚至提问如何用 [0,1] 的实数计量不同语言代码翻译的对应程度),那是另一个问题,一事一议。

另外默写课文的问题,学生也可以理解为教材出版社已经完成了权利的取得,并把默写理解为教材的合理使用(终于想起 fair use 的汉语了,谢谢你)。

>每种权利都有不经版权人合理使用的范围,而涉及教育,艺术、公益这类非商业性质的领域尤其如此。

很明显你已经知道了合理使用的概念,那你自己就可以解决默写和唱歌的问题了。

>如果采用“应然”的方式考虑问题,那么年会上唱孙燕姿的歌毫无疑问的侵犯了版权,那么你为何又会说出《年会上唱霉霉的歌也没问题》的观点呢?
>那么 B 站的鬼畜区就不应该存在,毕竟这已经是 100% 侵权实锤了,版权方完全可以一纸律师函让所有平台的 《坤你太美》下架。所有鬼畜区的 UP 主都有道德污点,怎么还让他得百大,得让他下架道歉呀!还有这些围观叫好的群众,都有道德污点,看侵权的内容,还到处刷小黑子,道歉!

第一段,请你自己练习用合理使用的方式理解问题。第二段,美国的案例里面 parody 是合理使用,至于每一个具体的鬼畜作品是否可以被认定为合理使用,需要由法院定夺。关于这部分,你可以参考 https://www.zhihu.com/question/30608829 但我没有仔细阅读过。

另外,“合理使用”是一个很复杂的问题,因此我之前的回复都尽量考虑的是具体的问题——看起来你的论证在于抽象的问题,而不是具体的问题,那答案就是抽象的问题没有固定答案。在信息不足的情况下,我选择要按照保守的方式考虑。

另外,你可能忘记了我 #1 回复的说法:

>此外,GitHub 上的代码,你不一定有权利去翻译成作业,这是版权问题,不是作弊问题。
>不一定

并且完全忽视了关于“作弊”方面的考虑。
86 天前
回复了 hanierming 创建的主题 问与答 QQ 音乐,重新定义概率学
@hanierming #6 这和规则没有任何矛盾。常见的做法有两种:

一是预先设置 15 、77485 、74500 份 99 、1 、2 Q 币的奖品,每次抽奖的时候从剩余的奖品中随机抽取一个,不放回。
二是每次抽取是独立的。

无论哪种情况,每一次抽奖的边际分布都符合广告描述。当然这是理想的描述,实际情况我们要考虑随机数生成器是否足够好,理论上应该采用密码学安全的伪随机生成器。

#9 “抽晚了”,在第一种模型中,确实每一次抽取的分布会根据已经知道的其他次的抽取情况变化,然而抽取结果的分布和每个人抽取的早晚没有关系,只和这个人抽取前已经知道的其他人的抽取结果有关系。
86 天前
回复了 hanierming 创建的主题 问与答 QQ 音乐,重新定义概率学
根据 https://nga.178.com/read.php?tid=39205576 大概是楼主运气不好
@MrSheng #36 上一条手癌了。

第一个问题:当然不,理同从习题册抄 1+1=? 的习题,所以你可以看到我加了“完整”这一限定。

第三个问题:默写莎士比亚的诗已经不存在侵权问题了,因为他的工作现在是公有领域,不受版权保护。年会上唱霉霉的歌也没问题:

1. 首先考虑歌词、曲谱的表演权问题,这种使用我的看法是属于 fair use ,因此不受到版权保护的约束。
2. 然后考虑的是霉霉所唱出来的歌的录音的版权问题,因为是其他人自己唱的,所以和录音的版权不搭边。

这个问题的扩展版本在现实里最近发生过,Taylor Swift 重新录制了她的专辑,原因是她不拥有前一版录音的版权( 2 的部分),但是 1 的部分,她大多数歌都是自己写的,所以重录不存在问题。

侵权和盈利、范围没有必然联系,后两者通常和版权持有人是否想要追究关联。所有法律问题,以及作弊的问题,几乎都是如此:是否违反和是否被追究是两码事。很明显我的意见是打算的行为不好,自然要采用一切合理的论证来提供支持。采用应然(是否违反)而不是实然(是否被追究)的方式考虑这个问题,有助于避免丧失判断力。
@MrSheng #36 你的问题都很好。

第一个问题:当然不。
第二个问题:
@MrSheng #29 可以用两个例子展示问题的答案非确定:

如果这段代码是 C 语言 int 类型的快速排序,那么照着它翻译成别的语言并以作业提交不存在任何侵权。
如果这段代码是 Windows 的源代码,那么照着它完整翻译成别的语言并以作业提交是侵犯了版权和专利权。

第一种情况,假设课程是 Java 语言拌着算法的入门课,作业是用 Java 实现快速排序,那么那样做是抄袭;如果看完了 C 语言的代码,不采用实时背诵 + 翻译的方法而自己写出来,那就不是抄袭,在这种情况下,先前看的是自然语言(课程)和 C 语言(自学)没有什么区别。

代码翻译成另一种语言是否侵权的问题,和文章、书籍翻译成另一种语言是否侵权,本质上很类似。假设买了一本非母语的书,那么为了自己阅读在脑内把这本书翻译成母语,当然不存在侵权,这是“阅读权利”的一部分;假设对着它翻译,把母语的版本写下来,并把母语的版本复制给其他人,那么很可能侵犯了出版商和作者的权利;假设这本书里有口算习题 1+1=?,那么把这个习题抄到其他地方、提供给其他人,也不存在侵权。
@Fffys #2 “只说复制粘贴不行”,复制粘贴是技术手段:你拍照再 OCR ,或者对着重新打一次,显然都是作弊行为;如果你把所有字符放在一个窗口里,然后用复制粘贴的方法输入代码,最后把你自己的代码通过反复复制粘贴一个字符写出来,那么显然不是作弊。提出这种病态的论证是要提醒你不要单纯从字面理解规定。另外,你的问题已经从“这是不是作弊”变成了“会不会被发现”了,这种问题大家更回答不了了。

完全没思路可以在答疑时间问讲师、助教。另外如果时间不够的话,最简单的做法是不交作业,而且不交作业比作弊好很多——这个评论无论这种行为是否是作弊都适用。

@MrSheng #11 你可能要意识到 GitHub 上存在很多没放任何许可协议的代码,根据 GitHub 服务协议,其他人的权利仅限于 fork 、查看、法律自动赋予的其他权利(例如所谓 fair use ),至于用来做作业是否是法律自动赋予的其他权利,我不知道。如果代码是 MIT 或者 GPL 授权的,那么我的理解是用来翻译成作业不违反协议(不侵犯版权),但因为楼主什么都没提示,所以应该以最低权利集合推理。另外你对版权的理解似乎和金钱绑定,这两者没有必然联系,如果你想用普通的排序代码收取版权费,很可能法院不会支持你的主张,而且对于代码收取费用,更加行之有效的方法是专利而不是版权。

PS:你区分不出来人和 AI 的话,不代表人的话就像 AI 的话。
是否是你学校的“作弊”需要查看你们学校的规定和你的课程规定,我们无从知晓。是否是通常意义下的作弊?答案是肯定的。此外,GitHub 上的代码,你不一定有权利去翻译成作业,这是版权问题,不是作弊问题。

最后,你产生了是否是作弊的疑惑,这已经说明问题了。建议是不要这样做,并且下次也用相同的标准拷问自己,以免逐渐丧失这种判断力。
这个键盘快捷方式应该是上古时代就有的,实现也没有难度——对于有明显词边界的文本(例如拉丁文本)只要寻找词边界就行了,对于汉字文本,内置一个字典就好。

上古,是指很可能在第一个基于命令行交互的操作系统里就有这个了,我懒得考据那么久远,但根据 http://www.shortcutmania.com/windows-95-keyboard-shortcuts.pdf 这个快捷方式在 Windows 95 里已经存在。
1  2  3  4  5  6  7  8  9  10 ... 172  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2203 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 615ms · UTC 15:45 · PVG 23:45 · LAX 08:45 · JFK 11:45
Developed with CodeLauncher
♥ Do have faith in what you're doing.