小编z0r*_*z0r的帖子

GCC函数后缀"isra"是什么意思?

在分析用gcc编译的程序时,我注意到了像foo.isra.3.有什么isra表明?我注意到其中一个函数只在几个地方调用,其中一个参数总是指定为文字值.也许这意味着它是针对某些参数优化的函数的变体?

gcc profiling name-mangling

13
推荐指数
1
解决办法
4505
查看次数

获取用于启动Docker容器的命令

我有一个Docker容器正在运行,我想创建另一个类似于它的容器.如何找出用于启动容器的命令?有docker inspect,但我必须逐个查看每个配置选项.

编辑:我想获取用于启动容器的完整命令,包括环境变量,链接,卷等.例如:

docker run -d --name foo -v /bar:/bar --link baz:baz -e DEBUG=True image bash
Run Code Online (Sandbox Code Playgroud)

docker

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

将空元组分配给专用变量时的类型不兼容

我有一个变量path,它应该是一个字符串元组。我想从它设置为一个空元组开始,但 mypy 抱怨。

path: Tuple[str] = ()
Run Code Online (Sandbox Code Playgroud)

错误是:

赋值中的类型不兼容(表达式类型为“Tuple[]”,变量类型为“Tuple[str]”)

如何将空元组分配给类型化变量?

动机

我想这样做的原因是:我想动态地构建元组,并且元组(与列表不同)可以用作字典键。例如(不是我实际在做什么):

for line in fileob:
    path += (line,)
some_dict[path] = some_object
Run Code Online (Sandbox Code Playgroud)

这很有效,除了 mypy 不喜欢上面的类型声明。我可以使用列表,然后将其转换为元组,但这会使代码复杂化。

python-3.x mypy

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

ai_socktype不支持的服务名称

我正在使用Vagrant运行Centos虚拟机.机器似乎运行正常,但当我尝试同步Perforce时,我可以看到以下错误:

[vagrant@vagrant-c5-x86_64 ~]$ /perforce/p4 sync -f ...  
Perforce client error:  
Connect to server failed; check $P4PORT.  
failed.TCP connect to perforce.xxx.com:1666  
Servname not supported for ai_socktype
Run Code Online (Sandbox Code Playgroud)

我已经阅读了这篇http://www.ducea.com/2006/09/11/error-servname-not-supported-for-ai_socktype/并尝试设置端口/etc/services,但它不起作用.我甚至不确定问题是Perforce还是OS相关.

任何提示?

sockets ip port perforce centos

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

$单击元素时发出一个事件

是否有内置指令,如ng-click发出事件而不是调用函数?我想做这样的事情:

HTML:

<button ng-click-emit="foo" ng-click-emit-model="model.bar">Emit foo</button>
Run Code Online (Sandbox Code Playgroud)

儿童控制器:

$scope.model = {bar: 'baz'};
Run Code Online (Sandbox Code Playgroud)

家长控制器:

$scope.$on('foo', function(event, arg) {
    console.log(arg); // prints 'baz'
});
Run Code Online (Sandbox Code Playgroud)

angularjs

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

使用Python的subprocess.Popen时的异常处理

在处理打开的文件时,Python的with语法确保文件在离开块时关闭 - 无论异常等.

with open('foo.txt') as f:
    foo = f.read()
Run Code Online (Sandbox Code Playgroud)

由于流程也是资源,我想知道:使用时是否有类似的可能或建议Popen?例如,应该Popen.kill(); Popen.communicate()在一个finally子句中运行- 假设在进程完成之前我不介意阻塞?

python subprocess exception-handling

6
推荐指数
2
解决办法
2419
查看次数

在不处理StopIteration的情况下将值发送到Python协同程序

鉴于Python协程:

def coroutine():
     score = 0
     for _ in range(3):
          score = yield score + 1
Run Code Online (Sandbox Code Playgroud)

我想在一个像这样的简单循环中使用它:

cs = coroutine()
for c in cs:
     print(c)
     cs.send(c + 1)
Run Code Online (Sandbox Code Playgroud)

......我希望打印出来

1
3
5
Run Code Online (Sandbox Code Playgroud)

但实际上,我在线上得到了一个例外yield score + 1:

 TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
Run Code Online (Sandbox Code Playgroud)

如果我next手动调用,我可以让它工作:

c = next(cs)
while True:
    print(c)
    try:
        c = cs.send(c + 1)
    except StopIteration:
        break
Run Code Online (Sandbox Code Playgroud)

但我不喜欢我需要使用try/except,因为发生器通常是如此优雅.

那么,有没有办法在没有明确处理的情况下使用像这样的有限协程StopIteration?我很高兴改变发生器和我迭代它的方式.

第二次尝试

Martijn指出for循环和我的调用都是为了send推进迭代器.很公平.那么,为什么我不能在协程循环中使用两个yield语句来解决这个问题呢?

def coroutine():
    score = 0 …
Run Code Online (Sandbox Code Playgroud)

python generator coroutine

6
推荐指数
1
解决办法
1519
查看次数

通过 HTTP 运行 SQL 查询的标准

我的客户想要SELECT在我们的 Web 应用程序的后端数据库上运行任意 SQL 查询,以用于临时报告目的。这些请求将是只读的。假设分析工具的选择是灵活的,但可能包括Access或psql。我不想将数据库暴露在公共 Internet 上,而是希望通过 HTTP 传输 SQL 查询。

我是否可以实现一个 Web 服务,允许数据库分析工具使用用户的 Web 应用程序凭据与数据库进行通信?例如,数据库连接字符串不是以 开头postgres://,而是以 开头https://。理想情况下,我正在寻找一种[事实上的]标准方法来做到这一点。

相关但不同/未答复:

sql postgresql standards protocols http

5
推荐指数
1
解决办法
3897
查看次数

历史/怪的git子模块

我有一个A使用project B作为git子模块的项目:

A
??? B
Run Code Online (Sandbox Code Playgroud)

我想查找A更新中的当前引用中的哪个提交B。该A/.gitmodules文件仅包含远程文件,不包含引用。运行此命令不起作用:

git blame -- B
Run Code Online (Sandbox Code Playgroud)
fatal: no such path 'B' in HEAD
Run Code Online (Sandbox Code Playgroud)

如何在A更改后的提交中查找提交B

git

4
推荐指数
1
解决办法
1133
查看次数

Tornado 未正确返回 HTTP 状态消息

我想向我的 Web 应用程序的用户显示错误。在处理请求时,我可能会提出HTTPError这样的问题:

raise tornado.web.HTTPError(403, reason="You're not authorised")
Run Code Online (Sandbox Code Playgroud)

在我的开发环境中运行它时,会产生如下响应状态:

403 You're not authorised
Run Code Online (Sandbox Code Playgroud)

但是当我在生产中运行它时,我得到:

403 Forbidden
Run Code Online (Sandbox Code Playgroud)

更改serve_tracebackdebug选项无济于事:在响应正文中返回回溯,但状态消息仍然只是“禁止”。

为什么它在生产中返回错误消息?

龙卷风 4.1

http tornado haproxy python-3.x

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