小编use*_*099的帖子

解析C++以对代码进行一些更改

我想编写一个小工具,它接受一个C++程序(单个.cpp文件),找到"main"函数并向其添加2个函数调用,一个在开头,一个在最后.

如何才能做到这一点?我可以使用g ++的解析机制(或任何其他解析器)吗?

c++ parsing

11
推荐指数
2
解决办法
272
查看次数

python ThreadPool中每个线程的超时

我正在使用Python 2.7。

我目前正在使用ThreadPoolExecuter这样的:

params = [1,2,3,4,5,6,7,8,9,10]
with concurrent.futures.ThreadPoolExecutor(5) as executor:
    result = list(executor.map(f, params))
Run Code Online (Sandbox Code Playgroud)

问题是f有时运行时间过长。每当我运行时f,我都希望将其运行时间限制为100秒,然后终止运行。

最终,每个元素xparam,我想有与否的指示f必须被杀死,并且如果它不是-是什么返回值。即使f对于一个参数超时,我仍然希望使用下一个参数运行它。

executer.map方法确实有一个timeout参数,但是它为整个运行(从调用时间到)设置了超时executer.map,而不是分别为每个线程设置超时。

什么是获得我想要的行为的最简单方法?

python multithreading future python-2.7 concurrent.futures

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

制作apache和django添加一个尾部斜杠

我的/ train目录是httpd.conf中的脚本别名:WSGIScriptAlias/train /some-path/../django.wsgi

除了一个问题,它运作良好.如果用户进入/训练(没有斜杠),它将不会将他重定向到/ train /,但只会给他正确的页面.这是一个问题,因为这样当没有使用尾部斜杠来访问它时,此页面上的相对链接会导致错误的位置.

怎么能解决这个问题?

谢谢.

apache django wsgi trailing

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

用于Windows的python os.mkfifo()

简短版本(如果你可以回答短版本它为我做的工作,其余的主要是为了其他有类似任务的人的利益):

在Windows的python中,我想创建2个文件对象,附加到同一个文件(它不必是硬盘上的实际文件),一个用于读取,一个用于写入,如果读取结束试图读取它永远不会得到EOF(它会阻止直到写入内容).我认为在linux中os.mkfifo()可以完成这项工作,但在Windows中它并不存在.可以做些什么?(我必须使用文件对象).

一些额外的细节:我有一个python模块(不是我写的)通过stdin和stdout(使用raw_input()和print)播放某个游戏.我也有一个Windows可执行文件,通过stdin和stdout播放相同的游戏.我想让他们一对一玩,并记录他们所有的沟通.

这是我可以编写的代码(该get_fifo()函数未实现,因为这是我不知道做的Windows):

class Pusher(Thread):
        def __init__(self, source, dest, p1, name):
                Thread.__init__(self)
                self.source = source
                self.dest = dest
                self.name = name
                self.p1 = p1

        def run(self):
                while (self.p1.poll()==None) and\
                      (not self.source.closed) and (not self.source.closed):
                        line = self.source.readline()
                        logging.info('%s: %s' % (self.name, line[:-1]))
                        self.dest.write(line)
                        self.dest.flush()


exe_to_pythonmodule_reader, exe_to_pythonmodule_writer =\
                          get_fifo()
pythonmodule_to_exe_reader, pythonmodule_to_exe_writer =\
                          get_fifo()

p1 = subprocess.Popen(exe, shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE)

old_stdin = sys.stdin
old_stdout = sys.stdout

sys.stdin = exe_to_pythonmodule_reader
sys.stdout = pythonmodule_to_exe_writer

push1 = Pusher(p1.stdout, exe_to_pythonmodule_writer, p1, '1')
push2 …
Run Code Online (Sandbox Code Playgroud)

python subprocess pipe mkfifo

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