gpt4 book ai didi

c - 如何创建一个正确的数组,可以通过 char** 引用以将参数传递给 LSF-API

转载 作者:太空宇宙 更新时间:2023-11-03 23:19:57 26 4
gpt4 key购买 nike

我想使用一个小型 C 包装器来访问所谓的 LSF-API。 LSF 是“负载共享设施”,类似于在各种机器上调度计算作业的平台(由 IBM 创建)。

我想出了如何通过填充数据结构并将其传递给 LSF 来完成基本的提交工作。但是,当我尝试使用更多已定义的属性来指定此数据结构时,我遇到了一个与基本 C 问题相关的问题。

我想指定一个主机名列表,作业应该被分派(dispatch)到哪里。根据 API,这是通过这两个字段完成的:

char **     askedHosts -> The array of names of invoker specified candidate hosts. The number of hosts is given by numAskedHosts.
int numAskedHosts -> length of the previous array

这个char **让我头疼:
我假设,我需要用我的主机名作为字符串创建一个数组,指定它们的数量并将其以某种方式传递给我的数据结构:

char *myHostArray[] = {"hostname_1","hostname_2","hostname_3"};
int numberOfMyHosts = 3;
myDatastructure.askedHosts = myHostArray;
myDatastructure.numAskedHosts = 3;

但无论我尝试什么,它都不起作用。所描述的变体是唯一的,其中编译至少是成功的,并且我在运行时没有得到“段错误”。但最终信息似乎没有正确传递,因为它对作业调度没有影响。

我想我把指针弄乱了。你知道我如何正确传递这个数组吗?我尝试了很多变体,但几个小时后我没有成功。

你知道我在这里可能做错了什么吗?

顺便一提——可以在这里找到 API 引用(我说的是“提交”数据结构):
https://www.ibm.com/support/knowledgecenter/en/SSWRJV_10.1.0/api_reference/index.html

最佳答案

对于任何可选参数,请求必须告知是否使用了该选项。 submit结构中的options确实有flag

#define SUB_HOST   0x04
Flag to indicate numAskedHosts parameter has data.

Equivalent to bsub -m command line option existence.

你必须做

    submit.options |= SUB_HOST;

关于c - 如何创建一个正确的数组,可以通过 char** 引用以将参数传递给 LSF-API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42859888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com