小编tor*_*gen的帖子

加载共享库时自动执行的功能

在Windows中加载共享库时,LoadLibrary()调用库中的原因DllMain,以便为每个新进程和线程库附加,以及为每个进程和线程库执行detaaches.

Mac OS X,Linux和其他POSIX兼容的操作系统是否有类似的机制?

posix d shared-libraries dlopen

42
推荐指数
3
解决办法
4万
查看次数

字符串序列的Python类型注释,但不适用于字符串?

是否有一个Python类型提示匹配列表,元组和可能的其他顺序类型,但不匹配字符串?

问题是字符串同时是长度为1的字符串序列(例如单个字符),因此它们在技术上匹配Sequence[str],但是为期望字符串列表的函数提供字符串可能是100%的错误.

有没有办法从类型注释中排除字符串,使其类似于不存在And[Sequence[str], Not[str]]

至于目的,我想注释这个功能:

PathType = Union[str, os.PathLike]
def escape_cmdline(argv: Union[List[PathType], Tuple[PathType]]) -> str: ...
Run Code Online (Sandbox Code Playgroud)

但是现有的签名看起来很臃肿,并没有涵盖列表和元组兼容的任何自定义类型.有没有更好的方法?

python typing python-3.x

25
推荐指数
1
解决办法
1024
查看次数

自定义bash完成输出:新行上的每个建议

键入内容时,通常会使用bash自动完成:例如,您开始编写命令,然后键入TAB以获取其余部分.

您可能已经注意到,当多个选项与您的命令匹配时,bash会显示如下:

foobar@myserv:~$ admin-
admin-addrsync         admin-adduser          admin-delrsync         admin-deluser          admin-listsvn
admin-addsvn           admin-chmod            admin-delsvn           admin-listrsync
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种解决方案,在新线上显示每个可能的解决方案,类似于上一栏的最后一栏ls -l.更好的是,如果我可以应用这样的规则将是完美的:"如果您发现少于10条建议,则逐行显示,如果更多=>实际显示".

unix bash customization bash-completion

21
推荐指数
2
解决办法
1564
查看次数

Shebang指向脚本(也有shebang)实际上被忽略了

考虑以下代码:

#!/usr/bin/env python

import sys

print "Hello! I've got %r as input." % sys.stdin.read()
Run Code Online (Sandbox Code Playgroud)

这是chmod +xed脚本/usr/local/bin/my_interpreter.还有这个:

#!/usr/local/bin/my_interpreter

This is intended to be passed "as is" to python script.
Run Code Online (Sandbox Code Playgroud)

chmod +x试图利用它的ed脚本.如果我echo something | /usr/local/bin/my_interpreter,它工作正常,但一旦我尝试执行上面的脚本,它失败了

/Users/modchan/test_interpreter/foo.bar: line 3: This: command not found
Run Code Online (Sandbox Code Playgroud)

似乎foo.bar是静默地重定向到bash而不是我的脚本.我究竟做错了什么?如何使这项工作?

macos bash shell

18
推荐指数
2
解决办法
3993
查看次数

在满足EOF时如何不停止阅读文件?

我正在尝试为Node.js实现一个例程,该例程允许一个人打开一个文件,此时正被其他一些进程附加,然后在附加到文件时立即返回数据块.它可以被认为与tail -fUNIX命令类似,但是当块可用时立即执行,而不是轮询一段时间内的更改.或者,人们可以将其视为与使用套接字一样处理文件 - 期望on('data')在文件明确关闭之前不时触发.

在C land中,如果我要实现它,我只需打开文件,将其文件描述符提供给select()(或任何具有类似名称的替代函数),然后只读取块,因为文件描述符标记为"可读".因此,当没有任何东西需要阅读时,它将无法读取,并且当某些内容被附加到文件时,它再次可读.

我有点期望在Javascript中跟踪代码示例的这种行为:

function readThatFile(filename) {
    const stream = fs.createReadStream(filename, {
        flags: 'r',
        encoding: 'utf8',
        autoClose: false // I thought this would prevent file closing on EOF too
    });

    stream.on('error', function(err) {
        // handle error
    });

    stream.on('open', function(fd) {
        // save fd, so I can close it later
    });

    stream.on('data', function(chunk) {
        // process chunk
        // fs.close() if I no longer need this file
    });
}
Run Code Online (Sandbox Code Playgroud)

但是,这个代码示例只在遇到EOF时才会失效,所以我不能等待新的块到达.当然,我可以使用fs.open和重新实现这一点fs.read …

javascript file-io node.js

12
推荐指数
1
解决办法
814
查看次数

如何使用套接字库正确发送HTTP响应?

我有一个用Python编写的非常简单的Web服务器.它侦听端口13000,如果http://localhost:13000在浏览器中打开,如何让它提供一个简单的"Hello World"网页?

对了我的代码:

# set up socket and connection
while True:
    sock, addr = servSock.accept()
    # WHAT GOES HERE?
    sock.close()
Run Code Online (Sandbox Code Playgroud)

如您所见,我不确定如何实际发送回网页?

我只需要使用该socket库.

编辑:问题不在于我不知道如何制定HTTP响应,我不知道如何在浏览器中实际显示它!它只是保持旋转/加载.

python sockets webserver http

9
推荐指数
3
解决办法
5万
查看次数

Combining arbitrary Unicode symbols, or Unicode characters with negative width

Back in the older ZX Spectrum days, there was a way to print one glyph on top of another, creating a composite glyph with the help of OVER 1 instruction.

I wonder if there is a Unicode way to do the same on modern computers? Can I overlay two completely arbitrary printable glyphs (e.g. 7 and ~) on top of each other as if they were OR'ed or XOR'ed to produce this result?

数字七 (U+0037) 波浪号 (U+007E) DIGIT SEVEN 和 TILDE 的 OR'ed 组合 数字七和波浪号的异或组合

Or, alternatively, are there any "negative …

unicode glyph

9
推荐指数
1
解决办法
904
查看次数

d2:opDot的语义是什么?

我遇到了几个关于opDot方法的提及,它允许重载成员访问又称点运算符,但它的官方文档丢失了.它肯定没有退出,因为std.typecons.Unique使用它.

有谁知道,如何使用opDot,为什么没有关于它的文档?

d

8
推荐指数
1
解决办法
275
查看次数

setup.cfg是否已弃用?

对我来说,这还不是很清楚setup.cfg。我正在寻找有关PEP 508环境标志物的其他问题的解决方案,这让我感到非常困惑。

在我看来,这setup.cfg是对的改进setup.py,因为它是声明性的,不涉及运行任意代码以使程序包可安装,使分发恶意Python程序包更加困难,使运行Python程序包注册表更容易。

因此,setuptools文档中这里提到了setuptools在30.3.0 (8 Dec 2016)版本中对setup.cfg的支持,这是最近的。所以,这必须是新事物,对吗?

不完全的。至少从2.6开始就有很长一段时间的distutils支持setup.cfg。已经9年了。

同时,在这里的wheel文档中,据说setup.cfg现在已弃用,最好通过extras_require参数提供环境标记。而且它提到了setuptools,因此它与可能不赞成使用的distutils风格无关setup.cfg

那么,实际上是怎么回事?是setup.cfg不赞成使用,还是最新的处理方式?

python distutils setuptools python-3.x python-packaging

8
推荐指数
2
解决办法
1289
查看次数

通过LD链接D程序时未定义的符号"开始"

我有以下简单的程序:

import std.stdio;

int main(string[] argv) {
    writeln("Hello, world!");

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在构建如下:

DMD -c -m64 -od/proj/out -w -wi -fPIC -debug \
    -g -I/proj/hello -unittest /proj/hello.d

LD -L/usr/share/dmd/lib/ -arch x86_64 -execute -macosx_version_min 10.7 \
    -pie -lm -lpthread -lphobos2 -o /proj/out/hello_app /proj/out/hello.o
Run Code Online (Sandbox Code Playgroud)

编译通过完美,但链接卡与以下:

Undefined symbols for architecture x86_64:
  "start", referenced from:
     -u command line option
     (maybe you meant: _D3std9algorithm41__T10startsWithVAyaa6_61203d3d2062TAhTAhZ10startsWithFAhAhZb, _D4core6thread6Thread5startMFZv , _D3std9algorithm91__T10startsWithVAyaa11_62203c20612e74696d6554TAS3std8datetime13PosixTimeZone10TransitionTlZ10startsWithFAS3std8datetime13PosixTimeZone10TransitionlZb , _D3std9algorithm43__T10startsWithVAyaa6_61203d3d2062TAyaTAyaZ10startsWithFAyaAyaZb , _D3std9algorithm41__T10startsWithVAyaa6_61203d3d2062TAxaTaZ10startsWithFAxaaZb , _D3std9algorithm92__T10startsWithVAyaa11_62203c20612e74696d6554TAS3std8datetime13PosixTimeZone10LeapSecondTylZ10startsWithFAS3std8datetime13PosixTimeZone10LeapSecondylZb , _D3std9algorithm92__T10startsWithVAyaa11_62203c20612e74696d6554TAS3std8datetime13PosixTimeZone10TransitionTylZ10startsWithFAS3std8datetime13PosixTimeZone10TransitionylZb )
ld: symbol(s) not found for architecture x86_64
Run Code Online (Sandbox Code Playgroud)

我想我忘记了一些额外的静态库来链接,让它设置一切,但究竟是什么?

此外,我已经看到有关如何在dlang网站上进行单独编译和链接的说明,但无法找到它.

UPD1: …

linker d ld

7
推荐指数
1
解决办法
2540
查看次数