小编kst*_*tis的帖子

C和指针传输中的MPI

我有一个新的小问题;

我有一个小指针叫:

int *a;
Run Code Online (Sandbox Code Playgroud)

现在..在我的main方法中的某个地方,我使用以下行为它分配一些空间并分配一个值:

a = (int *) malloc(sizeof(int));
*a=5;
Run Code Online (Sandbox Code Playgroud)

..然后我尝试传输它(比如流程1):

MPI_Bsend(a, 1, MPI_INT, 1, 0, MPI_COMM_WORLD);
Run Code Online (Sandbox Code Playgroud)

另一方面,如果我尝试接收该指针

int *b;
MPI_Recv(b, 1, MPI_INT, 0, MPI_ANY_TAG, MPI_COMM_WORLD, &status);

printf("This is what I received: %d \n", *b);
Run Code Online (Sandbox Code Playgroud)

我收到有关缓冲区的错误!

但是,如果不是将'b'声明为指针,而是执行以下操作:

int b;
MPI_Recv(&b, 1, MPI_INT, 0, MPI_ANY_TAG, MPI_COMM_WORLD, &status);

printf("This is what I received: %d \n", b);
Run Code Online (Sandbox Code Playgroud)

......一切似乎都很好!有人可以帮我弄清楚发生了什么,以及如何只使用指针?

提前致谢!

mpi

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

如何在 Python 中的单独线程中启动 win32 应用程序

所以,我有以下代码片段,它试图通过 win32api 启动 Microsoft Powerpoint:

import threading
import win32com.client
import sys

class myDemo(threading.Thread):

    def __init__(self):
        threading.Thread.__init__(self)

    def run(self):
        try:
            myObject = win32com.client.Dispatch("Powerpoint.Application")
            print "OK"
        except:
            print "Failed to start Powerpoint!"
            sys.exit(1)            
        print "Now attempting to shutdown..."
        try:
            myObject.quit()
        except:
            print "Error"


if __name__ == "__main__":
    test = myDemo()
    test.start()
Run Code Online (Sandbox Code Playgroud)

问题是它失败了,我不知道为什么。但是,如果我将最后一行更改为test.run()它将成功启动。那么,为什么这会失败test.start()

为什么会发生这种情况,考虑到我需要 Powerpoint 在单独的线程上异步运行,我应该如何解决它?

提前致谢。

编辑:显然我的问题与此有关:http : //python.6.x6.nabble.com/Dispatch-error-CoInitialize-has-not-been- called-td1951088.html

然而,除了提出的正确解决方案之外,似乎没有人回答为什么 COM 会以这种方式行事。

python winapi pywin32 win32com python-multithreading

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

Django在每个端口分别为每个应用程序提供服务

我有一个非常简单的项目在Django上运行(还没有型号)我需要做以下事情:

我已创建2级的应用程序,'Ebony''Ivory'认为有必要通过相互沟通JSON消息(最初设计为在不同的机器上运行,但现在一个是不够好).

问题是Django Debug服务器只是一个在特定端口运行的进程.我想要做的是让每个人'App'在同一台服务器上监听自己的端口,如果可能的话,在同一个Django项目下.这种情况可能吗?如果是的话,我应该怎么做呢?

提前致谢

python django port django-dev-server

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

分解shell脚本; 引擎盖下会发生什么?

所以,我得到了这一行脚本:

echo test | cat | grep test
Run Code Online (Sandbox Code Playgroud)

您可以向我解释一下,如果给出以下系统调用,它究竟是如何工作的:pipe(),fork(),exec()和dup2()?

我在这里寻找一般概述,主要是操作顺序.到目前为止我所知道的是shell将使用fork()进行fork,并且脚本的代码将使用exec()替换shell的代码.但是管道和dup2怎么样?它们如何落实到位?

提前致谢.

c unix bash shell exec

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

如何在Python中引用类中的静态属性?

我有以下python片段:

class myClass:
    myVar = 'a'

    def __init__(self):
        self.myOtherVar = 'b'
        myVar = 'c'  # Gets assigned but only as a local variable.

    print myVar            # prints 'a' !
    print self.myOtherVar  # says 'self' not found
Run Code Online (Sandbox Code Playgroud)

我的问题是这个; myVar从内部打印内容myClass和/或从中重新分配内容的正确方法是什么init

python constructor class

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

节点流缓冲区在console.log与process.stdout.write中

使用NodeJS v5.6我创建了一个名为的文件read-stream.js:

const
    fs = require('fs'),
    stream = fs.createReadStream(process.argv[2]);

stream.on('data', function(chunk) {
    process.stdout.write(chunk);
});

stream.on('error', function(err) {
    process.stderr.write("ERROR: " + err.message + "\n");
});
Run Code Online (Sandbox Code Playgroud)

和一个纯文本的数据文件target.txt:

hello world
this is the second line 
Run Code Online (Sandbox Code Playgroud)

如果我这样做node read-stream.js target.txt的内容target.txt正常在我的控制台打印,一切都很好.

但是,如果我切换process.stdout.write(chunk);,console.log(chunk);那么我得到的结果是:

<Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64 0a 74 68 69 73 20 69 73 20 74 68 65 20 73 65 63 6f 6e …
Run Code Online (Sandbox Code Playgroud)

buffer character-encoding node.js

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

当多个 Remix.run 加载器都抛出重定向时会发生什么?

浏览 Remix.run 的常见问题解答,我注意到保护路线的推荐方法是强制加载程序throw使用redirect.

但我发现很难理解的是,当多个加载器为单个路由抛出重定向时会发生什么?在这种情况下,预期的浏览器行为是什么?

示例:假设访问/protected-route涉及调用 2 个加载程序。两个加载程序都配置为在用户未经身份验证时throw重定向。/login在这种情况下浏览器会发生什么?一条路线预计会访问两次吗?如果重定向位置不同怎么办?

reactjs remix.run

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

使用字典在python中进行变量扩展

我面临以下问题;

我的脚本里面的某个地方我定义了一个函数

def lookup(type, value): 
    doctors = {'doctor1':"Smith", 'doctor2':"Rogers"}
    supervisors = {'super1': "Steve", 'super2': "Annie"}
    print type['value']
Run Code Online (Sandbox Code Playgroud)

我从我的脚本末尾调用这个函数,如下所示:

myDoc = 'super1'
lookup('supervisors', myDoc)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

TypeError: string indices must be integers, not str
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,我该如何解决?

谢谢大家!

python dictionary function variable-expansion string-substitution

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

用 python 封装 bash 脚本

我刚刚找到了这个很棒的 wget 包装器,我想使用 subprocess 模块将其重写为 python 脚本。然而,事实证明这很棘手,给了我各种各样的错误。

download()
{
    local url=$1
    echo -n "    "
    wget --progress=dot $url 2>&1 | grep --line-buffered "%" | \
    sed -u -e "s,\.,,g" | awk '{printf("\b\b\b\b%4s", $2)}'

    echo -ne "\b\b\b\b"
    echo " DONE"
}
Run Code Online (Sandbox Code Playgroud)

然后可以这样调用:

file="patch-2.6.37.gz"
echo -n "Downloading $file:"
download "http://www.kernel.org/pub/linux/kernel/v2.6/$file"
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

来源: http: //fitnr.com/showing-file-download-progress-using-wget.html

python bash shell subprocess wrapper

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