小编vy3*_*y32的帖子

如何使用RE2找到匹配字符串的偏移量?

RE2是Google提供的现代正则表达式引擎.我想在当前使用gnuregex的程序中使用RE2.我遇到的问题是找出匹配的东西.RE2返回的是匹配的字符串.我需要知道匹配的偏移量.我目前的计划是采用RE2返回的内容,然后find在C++字符串上使用a .但这似乎很浪费.我已经阅读了RE2手册,无法弄清楚如何做到这一点.有任何想法吗?

c++ regex re2

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

使用AddressSanitizer输出获取行号?

我正在尝试让AddressSanitizer在其堆栈跟踪中生成行号.我试过Mac和Fedora 19系统并且有类似的结果.

这是一个简单的程序:

#include <cstdio>
#include <cstdlib>

int main(int argc,char **argv)
{
    char *buf = (char *)malloc(5);
    free(buf);
    puts("get ready");
    buf[4] = '3';
    puts("done");
    return(0);
}
Run Code Online (Sandbox Code Playgroud)

我编译它:

$  g++ -g -o x -fsanitize=address x.cpp
Run Code Online (Sandbox Code Playgroud)

我运行它(llvm-symbolizer在我的路径中):

$ ASAN_SYMBOLIZER_PATH=`which llvm-symbolizer` ASAN_OPTIONS=symbolize=1 ./x
get ready
=================================================================
==9309== ERROR: AddressSanitizer: heap-use-after-free on address 0x60040000dff4 at pc 0x40091f bp 0x7fff1b721140 sp 0x7fff1b721138
WRITE of size 1 at 0x60040000dff4 thread T0
    #0 0x40091e in main (/raid/nfs_home/xv32/asan/x+0x40091e)
    #1 0x3304021b44 in __libc_start_main (/lib64/libc.so.6+0x3304021b44)
    #2 0x4007e8 (/raid/nfs_home/xv32/asan/x+0x4007e8)
0x60040000dff4 is …
Run Code Online (Sandbox Code Playgroud)

debugging address-sanitizer

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

如何从 Python 中的 RFC 2822 邮件标头中提取多个电子邮件地址?

Python 的email模块非常适合解析头文件。但是,To:header 可以有多个接收者,也可能有多个To:header。那么如何拆分每个电子邮件地址呢?我不能在逗号上拆分,因为可以引用逗号。有没有办法做到这一点?

演示代码:

msg="""To: user1@company1.com, "User Two" <user2@company2.com", "Three, User <user3@company3.com>                               
From: anotheruser@user.com                                                                                                      
Subject: This is a subject                                                                                                      

This is the message.                                                                                                            
"""

import email

msg822 = email.message_from_string(msg)
for to in msg822.get_all("To"):
    print("To:",to)
Run Code Online (Sandbox Code Playgroud)

电流输出:

$ python x.py
To: user1@company1.com, "User Two" <user2@company2.com", "Three, User <user3@company3.com>
$ 
Run Code Online (Sandbox Code Playgroud)

python email rfc822

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

从Python smtplib捕获调试输出

如何捕获Python smtplib库的调试输出?

这是我的测试程序:

import smtplib
s = smtplib.SMTP("mx10.comcast.com")
s.set_debuglevel(1)
s.sendmail("no-such-sender@comcast.com",["no-such-receiver@comcast.com"],"""
from: no-such-sender@comcast.com
to: no-such-receiver@comcast.com
subject: no such message

This message won't be delivered to anybody.
""")
Run Code Online (Sandbox Code Playgroud)

这是输出:

send: 'ehlo dance.local\r\n'
reply: '250-mx10.comcast.com says EHLO to 129.6.220.67:57015\r\n'
reply: '250-SIZE 40000000\r\n'
reply: '250-PIPELINING\r\n'
reply: '250-ENHANCEDSTATUSCODES\r\n'
reply: '250-8BITMIME\r\n'
reply: '250 XXXXXXXA\r\n'
reply: retcode (250); Msg: mx10.comcast.com says EHLO to 129.6.220.67:57015
SIZE 40000000
PIPELINING
ENHANCEDSTATUSCODES
8BITMIME
XXXXXXXA
send: 'mail FROM:<no-such-sender@comcast.com> size=137\r\n'
reply: '250 2.0.0 MAIL FROM accepted\r\n'
reply: retcode (250); Msg: 2.0.0 MAIL FROM …
Run Code Online (Sandbox Code Playgroud)

python error-handling smtplib

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

SQLITE:批量插入或替换(upsert)

我有一个应用程序,可以将具有唯一键的记录插入(或替换)到 SQLite 数据库表中。预计每秒可处理约 1500 条记录,但由于性能问题,速度会比这慢。

目前我正在这样做(用Python):

for item in items:
    CONN.execute("INSERT OR REPLACE INTO ITEMS (ITEM_ID) VALUES ("+item['itemId']+")")
Run Code Online (Sandbox Code Playgroud)

我想要的是批量插入或替换以提高性能。

我知道有一种方法可以进行批量插入: Is it possible to insert multiple rows in an SQLite database?

但有没有办法批量插入或替换呢?我知道插入或替换与更新插入不同 - 没关系。

python sqlite upsert

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

what are count0, count1 and count2 values returned by the Python gc.get_count()

The documentation for python's gc package says this about gc.get_count():

gc.get_count()
    Return the current collection counts as a tuple of (count0, count1, count2).
Run Code Online (Sandbox Code Playgroud)

Here is a sample program:

import gc


if __name__=="__main__":
    print("making some data")
    for k in range(10):
        root = [range(i,1000) for i in range(1,1000)]
    print("len(gc.get_objects):",len(gc.get_objects()))
    print("gc.get_stats:",gc.get_stats())
    print("gc.get_count:",gc.get_count())
Run Code Online (Sandbox Code Playgroud)

Here is the output:

making some data
len(gc.get_objects): 7130
gc.get_stats: [{'collections': 16, 'collected': 99, 'uncollectable': 0}, {'collections': 1, 'collected': 0, 'uncollectable': 0}, {'collections': 0, 'collected': 0, 'uncollectable': 0}]
gc.get_count: (75, 5, …
Run Code Online (Sandbox Code Playgroud)

python garbage-collection python-internals

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

mingw32-make:"输入行太长"的问题

我们有一个在Windows 2003机器上运行的Makefile,我们正在使用mingw32-make.由于生成文件有许多包含路径,它超过8K的缓冲区大小意味着cmd可以处理[参考文献- http://support.microsoft.com/kb/830473/EN-US/由于该编译的结果为"输入行太久"问题.

我想知道以下内容 -

  1. 什么是优化Makefile的最佳方法,因为我已经删除了不需要的编译器开关,包括路径等.

  2. 有没有什么办法可以将所有INCLUDE路径放在一个.txt文件中并将其导入Makefile.I找不到任何相同的mingw32文档.

我们非常欢迎任何其他输入/提示/参考链接.

谢谢,
-HJSblogger

open-source mingw codeblocks

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

如何在C程序中设置命令行参数,以便在用户键入"ps aux"时可见?

键入"ps aux"时,ps命令显示运行程序的命令参数.有些程序会将此更改为指示状态的方式.我已经尝试过更改argv []字段,但它似乎不起作用.是否有一种标准方法来设置命令行参数,以便在用户键入ps时显示它们?

也就是说,这不起作用:

int main(int argc,char **argv)
{
    argv[0] = "Hi Mom!";
    sleep(100);
}

09:40 imac3:~$ ./x &
[2] 96087
09:40 imac3:~$ ps uxp 96087 
USER      PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
yv32      96087   0.0  0.0  2426560    324 s001  S     9:40AM   0:00.00 ./x
09:40 imac3:~$ cat x.c
Run Code Online (Sandbox Code Playgroud)

c posix ps argv

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

想要:在MacOS和Linux上使用C#(mono)的用户体验

我有一个朋友,他是一个严肃的Linux开发人员,但现在他正在Windows上使用C#并且非常喜欢它.我被C#所吸引,因为像Java一样,我应该可以在一个系统上编译并在任何地方运行.

如果您使用C#在Windows上进行开发,那么您使用的是dot-Net.在Linux和MacOS上,您使用的是Mono.

其他人发布Mono非常好,不再是科学项目,并且大多数核心Microsoft功能都存在.但这并不能解决我的问题.我在想:

  1. Linux/MacOS上的Mono性能如何与Java相比?如果我想在具有相同目标代码的所有三个平台上快速运行,那么我最好的选择是什么?
  2. 将Mono与makefile一起使用并使用emacs进行开发是否容易/可能/合理?
  3. 是否支持MacOS和Linux中的代码分解,或者我最好只是咬紧牙关并在Windows中进行所有开发?
  4. Mono如何与Subversion以及其他开源开发堆栈一起工作?autoconf怎么样?或者这是一种完全不同的做事方式?

谢谢

mono cross-platform

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

你怎么用autoconf创建一个.so库,而不是.la库?

我想用autoconf创建一个共享库.但是,我希望共享库具有".so"扩展名,而不是以"lib"开头.基本上,我想制作一个可以加载的插件dlopen.是否有捷径可寻?

当我尝试使用autoconf创建.so文件时,我收到此错误:

plugins/Makefile.am:3:libscan_bulk.la scan_bulk.la' is not a standard libtool library name plugins/Makefile.am:3: did you mean'?

autoconf shared

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