小编Sla*_*a V的帖子

什么是"静态"功能?

问题是关于普通函数,而不是 static方法,正如评论中所阐明的那样.

好的,我理解static变量是什么,但什么是static函数?

为什么如果我声明一个函数,让我们说void print_matrix,让我们说a.c(WITHOUT a.h)和include "a.c"- 我得到"print_matrix@@....) already defined in a.obj",但是如果我声明它static void print_matrix然后它编译?

更新只是为了清理 - 我知道包括.c很糟糕,正如你们许多人指出的那样.我只是做它在暂时清除空间main.c,直到我有更好的想法如何将所有这些功能集成到适当.h.c文件.只是一个临时的快速解决方案.

c static terminology function

465
推荐指数
11
解决办法
55万
查看次数

在Python中迭代带有索引的列表

我可以发誓我已经看到了获取列表的函数(或方法),就像这样,[3, 7, 19]并使其成为可迭代的元组列表,如下所示:[(0,3), (1,7), (2,19)]使用它代替:

for i in range(len(name_of_list)):
    name_of_list[i] = something
Run Code Online (Sandbox Code Playgroud)

但我不记得名称和谷歌搜索"迭代列表"什么都没有.

python list

193
推荐指数
5
解决办法
31万
查看次数

确保只运行一个程序实例

是否有Pythonic方法只运行一个程序实例?

我提出的唯一合理的解决方案是尝试在某个端口上将其作为服务器运行,然后第二个程序尝试绑定到同一个端口 - 失败.但这不是一个好主意,也许有比这更轻巧的东西?

(考虑到程序有时会失败,即段错误 - 所以像"锁定文件"这样的东西不起作用)

更新:提供的解决方案比仅存在一个不存在的服务器的端口要复杂得多且不太依赖,所以我必须使用那个.

python locking process mutual-exclusion

112
推荐指数
11
解决办法
6万
查看次数

通过API获取我的公共IP

是否有来自某个大公司的公共API来从程序中获取我的公共IP?

我发现http://ip-address.domaintools.com/myip.xml,这正是我想要的,但不幸的是它阻止了Python urllib以及许多其他的http库,除非你欺骗用户代理(任何做这件事的东西都不能称为API).

问题是我需要这些数据用于一些潜在的开源库,所以我们必须遵守规则.我也知道我可以做类似的事情print $_SERVER[REMOTE_ADDR],但我不想使用我的库为所有人提供流量服务.

那么,是否有类似上面的URL,但真正的API,允许机器人?

api ip

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

C++:函数/方法声明中的&符号"&"和星号"*"之间的区别?

那些之间是否有某种微妙的区别:

void a1(float &b) {
    b=1;
};
a1(b);
Run Code Online (Sandbox Code Playgroud)

void a1(float *b) {
    (*b)=1;
};
a1(&b);
Run Code Online (Sandbox Code Playgroud)

它们都是相同的(或者看起来似乎来自main()),但第一个显然更短,但我看到的大部分代码都使用第二种表示法.有区别吗?也许万一它是一些对象而不是浮动?

c++ pointers reference

66
推荐指数
4
解决办法
6万
查看次数

备份正在运行的Docker容器?

是否可以备份正在运行的Docker容器?export命令是否适合这样做?

linux docker linux-containers

58
推荐指数
2
解决办法
2万
查看次数

在Python中卸载模块

TL/DR:

import gc, sys

print len(gc.get_objects()) # 4073 objects in memory

# Attempt to unload the module

import httplib
del sys.modules["httplib"]
httplib = None

gc.collect()
print len(gc.get_objects()) # 6745 objects in memory
Run Code Online (Sandbox Code Playgroud)

更新 我已经与Python开发人员联系了这个问题,事实上,"未来五年" 无法完全卸载模块.(见链接)

请接受Python确实不支持在2.x中卸载严重,基本,不可克服的技术问题的模块.


在我最近在我的应用程序中搜索memleak期间,我将其缩小到模块,即我无法收集卸载的模块.使用下面列出的任何方法卸载模块会在内存中留下数千个对象.换句话说 - 我无法在Python中卸载模块...

剩下的问题是尝试以某种方式垃圾收集模块.

我们试试吧:

import gc
import sys

sm = sys.modules.copy()  # httplib, which we'll try to unload isn't yet 
                         # in sys.modules, so, this isn't the source of problem

print len(gc.get_objects()) # 4074 objects in …
Run Code Online (Sandbox Code Playgroud)

python memory-leaks

53
推荐指数
4
解决办法
2万
查看次数

Ubuntu上的Docker无法使CPU饱和

我有一个简单的Ruby应用程序,基本上它通过HTTP端点获取一些数据,稍微处理它,对它进行分组并将其分批发送到某个远程HTTP端点.

当我在裸机上运行时 - 我将4个CPU饱和到100%然后得到3000reqs/s(根据ab;应用程序有点计算密集);

但是当我在Docker中运行时,我只得到了1700reqs/s- CPU似乎达到了55-65%的峰值.相同的应用程序,相同的设置.

CPU的

我尝试增加ab的并发性.应用程序本身托管在Passenger中,我尝试在20个进程中运行它,在40个进程中运行(Passenger运行应用程序).在Docker里面它似乎并不想要更高.

我通过docker-compose主机运行它Ubuntu 14.04

$ docker -v
Docker version 1.10.0, build 590d5108

$ docker-compose -v
docker-compose version 1.5.2, build 7240ff3
Run Code Online (Sandbox Code Playgroud)

两种情况下的负载平均值都很高(大约20),但它不受盘限制.

$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- ---system---  ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in      cs  us sy id wa st
22  0      0 8630704  71160 257040    0    0    29     6  177    614   3  1 94  1  0
 7  0 …
Run Code Online (Sandbox Code Playgroud)

docker

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

在FreeBSD下以不同的用户身份运行

在FreeBSD中是否有一种方法(作为root用户)以非特权用户身份运行命令,就像没人一样?有点像sudo的逆转.哦,考虑到'没人'将/ usr/sbin/nologin作为shell - 所以su不是一个选项.

freebsd

19
推荐指数
2
解决办法
2万
查看次数

在golang中实现全局热键?

假设有人想在Go(golang)中创建一个跨平台(Mac,Linux,Windows)全球热键 - 你在操作系统的任何地方按热键组合,让我们说在终端上打印一些东西.

目前,(2016年7月)我没有找到任何图书馆这样做,所以也许我们可以一起找到一条路.

当然,它将涉及为每个操作系统调用一些本机操作系统绑定,但是关于如何执行操作的信息非常稀少.

苹果电脑

从谷歌搜索来看应该使用 addGlobalMonitorForEventsMatchingMask

编辑:删除无用的示例

Linux的

看起来嫌疑人XGrabKey在近处看不到任何示例代码https://github.com/search?utf8=%E2%9C%93&q=language%3Ago+XGrabKey&type=Repositories&ref=searchresults

视窗

似乎我们需要使用RegisterHotKey,但试图找到一些示例代码无处可去:https://github.com/search? utf8 =% E2%9C%93 & q = language%3Ago + RegisterHotKey

一些有趣的跨平台项目(Java)是https://github.com/tulskiy/jkeymaster

任何帮助将不胜感激!

cross-platform hotkeys go

17
推荐指数
3
解决办法
3279
查看次数