小编hor*_*air的帖子

使用/ proc/[pid]/pagemap

我知道这里有关于页面映射文件的一些信息.但似乎没有人指出如何引用文件中的条目.它是否被虚拟地址抵消?我可以使用虚拟地址VA并简单地lseek来抵消VA吗?还是按页面?如果是这样,我如何检索页码,因为地图只是按顺序列出它们.我试图在虚拟和物理地址之间进行转换,并且使用虚拟地址进行转换,因为无论我在哪里寻找,偏移总是返回相同的数字.

谢谢

@leeduhem:是的,我有.以下是相关部分:3.打开/ proc/pid/pagemap并查找要检查的页面.4.从pagemap读取每个页面的u64.

这对我没有帮助.它希望我寻找页面,但我怎么知道页面的条目在哪里?

linux process proc

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

在python中使用带有mysql的预处理语句

我试图在Python中使用带有预处理语句的SQL.Python没有自己的机制,所以我尝试直接使用SQL:

sql = "PREPARE stmt FROM ' INSERT INTO {} (date, time, tag, power) VALUES (?, ?, ?, ?)'".format(self.db_scan_table)
self.cursor.execute(sql)
Run Code Online (Sandbox Code Playgroud)

然后,在循环中:

sql = "EXECUTE stmt USING \'{}\', \'{}\', {}, {};".format(d, t, tag, power)
self.cursor.execute(sql)
Run Code Online (Sandbox Code Playgroud)

在循环中,我得到:

MySQL Error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''2014-12-25', '12:31:46', 88000000, -6.64' at line 1
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

python mysql

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

正确使用 psycopg2 序列化

我正在访问带有序列化事务隔离的 postgresql 表。我正在做这样的事情(使用现有的 psycopg2 连接conn和该连接中的光标,cur

while True:
  try:
    cur.execute(query)
    break
  except TransactionRollbackError:
    [sleep a little]
    continue
  except Exception:
    [handle error here]
Run Code Online (Sandbox Code Playgroud)

这样做的目的是在序列化争用的情况下重试。现在,这在大部分时间都可以正常工作。但我经常在TransactionRollbackError陷阱中进行一次迭代后收到此错误:

current transaction is aborted, commands ignored until end of transaction block. 显然,以这种方式旋转以避免序列化争用是不合适的?我应该以不同的方式做这件事吗?

一些注意事项:我正在使用不同的进程访问表(它们都是相同的并且做同样的事情:选择、增加和更新/插入到表中。)这些进程中的每一个都有自己的连接conn,它们不共享一个联系。

另一个注意事项:似乎在通过TransactionRollbackError异常块一次之后,在 while 循环的下一次旋转中,它最终在Exception异常块中结束。

还有一个注意事项:同时运行的进程数对错误的频率有直接影响,因为更多的进程往往会产生更多的错误。因此,存在某种争论。我的印象是使用带重试的序列化事务隔离(如在我的演示代码中)可以解决这个问题。

python postgresql psycopg

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

许多小的 UDP 数据报与更少、更大的数据报

我有一个系统,每隔一段时间(例如,每分钟 10 次)以突发形式发送“许多”(数百个)UDP 数据报。据nload,这平均约为 222kBit/s。这些数据报的内容是 JSON。我考虑过更改系统,使其等待一段时间(500 毫秒?),并将许多 JSON 对象合并到一个数据报中,然后再发送。但我不确定是否值得付出努力(考虑带宽、协议、发送频率)。新方法是否会比当前方法提供任何真正的好处?

networking udp network-programming

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

Go Docker 包未标记镜像

我创建了一个通用的 Dockerfile 并在我的 go 代码中建立了一个 Docker 客户端。我能够使用以下命令在 go 中成功构建图像:

image, err := client.ImageBuild(
    ctx,
    buildContext,
    types.ImageBuildOptions{
        Dockerfile: Dockerfile,
        Remove:     true,
        Tags: []string{
            fmt.Sprintf("just/a:test"),
Run Code Online (Sandbox Code Playgroud)

图像显示在docker image ls输出中。但它没有预期的存储库和标签值,我认为这些值取自Tags上面:

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
<none>       <none>    a34825be6ba1   16 minutes ago   72.8MB
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我只想命名并标记图像。

go docker

5
推荐指数
0
解决办法
113
查看次数

在Erlang中将文字文本连接到变量(字符串连接)

我有: String = "there"

我尝试了各种各样的东西,比如:"Hello " ++ Stringstring:concat("Hello", String).输出总是以文字字符串"Hello"结尾,它是表示字符串字符的整数,而不是字母.

如何在Erlang中将变量中的文字字符串和字符串组合在一起?

erlang

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

文件显示在 git 的每个分支中

我已经使用 git 好几年了。要么是一些脑细胞死亡,要么是发生了其他事情。请多多包涵。

我创建了几个分支。当我更改为一个分支(例如,git checkout example1)并创建一个文件:touch test,然后更改为另一分支时,git checkout example2test现在显示在 example2 分支中。这不是我预期会发生的事情。这是正常的吗?如果不是,可能是什么原因造成的?

git

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

如何删除Erlang中字符串内的周围引号?

我正在使用epgsqlErlang 查询数据库。它返回字符串结果包括它们周围像这样引号:"what_was_in_the_row"。如何在处理结果之前删除这些引号?

string erlang

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

扭曲的Web服务器和Autobahn WebSocket同时使用相同的端口

我有一个服务器,使用Twisted和Autobahn侦听端口80上的WebSocket连接.我想让它也提供静态HTML页面,因为当客户端不想使用WebSocket时.使用Twisted和Autobahn可以同时做两件事吗?

twisted autobahn

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

Erlang 在可分性上切换(大小写)

我想使用 Erlang 来确定传递给函数的变量是否可以被数字整除。我已经考虑case过这样做,但是,解决方案让我望而却步。是case适合这项工作的工具吗?

示例:将一个数字传递给函数 f()。如果数字能被 10 整除,则打印一个语句。如果它可以被 15 整除,则打印不同的语句。如果它可以被 5 整除,我想我想打印第三个语句,但不是“可被 10 整除”或“可被 15 整除”的语句,因为该案例已经处理完毕。

我的直觉告诉我case适合这份工作,但我是 Erlang 的新手,很难将它拼凑起来。

erlang

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