小编Maw*_*awg的帖子

Cmocka:检查作为参数传递的结构

假设我声明了一个名为 foo 的 C 结构,它有一个名为 bar 的 int 字段和一个名为 baz 的 char *。

如何使用Cmocka expect_check_expected宏来检查传递的结构是否正确以及两个字段是否具有预期值?如果文档中有示例,我错过了。


[更新] 也许我可以使用expect_check()?但我找不到一个例子:-(

c cmocka

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

Python子进程不返回

我想从 Jenkins 调用 Python 脚本并让它构建我的应用程序,将其通过 FTP 传输到目标并运行它。

我正在尝试构建,但subprocess命令失败。我已经尝试过使用 和subprocess.call()subprocess.popen()得到相同的结果。

shellCommand当我从命令行评估并运行它时,构建成功。

请注意,我有 3 个 shell 命令:1)删除工作目录,2)创建一个新的空工作目录,然后 3)构建。前两个命令从 中返回subprocess,但第三个命令挂起(尽管它在从命令行运行时完成)。

我做错了什么?或者,我有什么选择来执行该命令?

# +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
def ExcecuteShellCommandAndGetReturnCode(arguments, shellCommand):
    try:
        process = subprocess.call(shellCommand, shell=True, stdout=subprocess.PIPE)
        #process.wait()
        return process #.returncode

    except KeyboardInterrupt, e: # Ctrl-C
        raise e
    except SystemExit, e: # sys.exit()
        raise e
    except Exception, e:
        print 'Exception while executing shell command : ' + shellCommand
        print str(e)
        traceback.print_exc()
        os._exit(1)

# +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
def BuildApplciation(arguments):
    # See http://gnuarmeclipse.github.io/advanced/headless-builds/ …
Run Code Online (Sandbox Code Playgroud)

python subprocess python-2.7

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

C语言中的通用枚举到文本查找

[更新]

  1. 给出的代码确实有效.当我认为它没有时,我错了.我的错; 遗憾++.如果您可以改进代码,请访问https://codereview.stackexchange.com/questions/150480/generic-enum-to-text-lookup-in-c
  2. 我们必须在编译时声明我们的字符串.我们对嵌入式系统进行编码,不允许使用malloc().很抱歉没有这么清楚.

[更新++]我可能会接受下面的答案之一.但是,我忘了说,我们的枚举是非连续的,并且范围很广,这可以有所作为


intertubes和这个网站充斥着要求从枚举中获取文本的问题.

我找不到一个规范的方法来做这个(并且会接受一个作为这个问题的答案),所以让我们看看我们是否可以在我们之间拼凑一个.

在我们的代码中,我们有多个结构数组,包含枚举对应和相应的字符串.

问题是字符串具有不同的长度,因此我们为每个字符串编写一个查找函数,用于在结构数组上循环,尝试匹配枚举并在找到匹配时返回相应的文本.

让我们采取以下两个人为的例子:

// +=+=+=+=+=+=+=+=+=+=+=+=+=+=
typedef enum
{
    north,
    south,
    east,
    west
} E_directions;

struct direction_datum
{
    E_directions direction;
    char         direction_name[6];
};

struct direction_datum direction_data[] =
{
    {north, "north"},
    {south, "south"},
    {east,  "east"},
    {west,  "west"},
};

// +=+=+=+=+=+=+=+=+=+=+=+=+=+=
typedef enum
{
    hearts,
    spades,
    diamonds,
    clubs,
} E_suits;

struct suit_datum
{
    E_suits suit;
    char    suit_name[9];
};

struct suit_datum suit_data[] =
{
    {hearts,   "hearts"},
    {spades,   "spades"},
    {diamonds, "diamonds",},
    {clubs,    "clubs"}, …
Run Code Online (Sandbox Code Playgroud)

c enums pointers

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

如何使用bootstrap 3均匀分隔三个水平对齐的按钮?

如果我用<div>with 括起来class="row"并给每个按钮class="span4"按钮填充屏幕的总宽度.

我希望每个按钮只有一样宽,它包含的文本,与中心处于25%,50%75%width.

             [aaa]                        [bbb]                     [ccc]
Run Code Online (Sandbox Code Playgroud)

[            aaa             ][            bbbb         ][            cccc            ]
Run Code Online (Sandbox Code Playgroud)

我是bootstrap的新手而不是CSS大师.

我该如何实现这一目标?

我的按钮也有class="btn-outline btn-default",但这不应该影响事情(我认为).

顺便说一句,我目前正在考虑3个按钮,但如果任何数字的通用解决方案同样容易,那将是受欢迎的.

html css twitter-bootstrap twitter-bootstrap-3

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

跨浏览器服务器发送的事件,或替代方案,包括Microsoft浏览器

根据我可以使用吗?,MS IE和Edge浏览器不支持服务器发送的事件.

有解决方法吗?

或者是一个完全交叉的浏览器替代方案,这很简单(webockets似乎不是(并且,无论如何,我更喜欢坚持使用HTTP而不会有多个同步协议使事情变得复杂))?

我希望AngularJs客户端能够订阅和取消订阅PHP服务器推送的JSON数据,多个客户端能够订阅相同的数据,只需要一个服务器操作就可以推送它,最好不知道推送它的对象.

server-push server-sent-events

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

C 函数调用 C++ 成员函数 - 其中 C 代码由 C 编译器编译

在关闭之前阅读问题并了解为什么不同(提示:这是 C 编译器)

我用 Google 搜索并找到了很多很多关于 C 函数如何调用 C++ 成员函数的解释。

它们看起来都类似于这个问题的公认答案,来自一位非常高的代表成员。

它说

在头文件中,放入

extern "C" void* MyClass_create() {
   return new MyClass;
}
extern "C" void MyClass_release(void* myclass) {
   delete static_cast<MyClass*>(myclass);
}
extern "C" void MyClass_sendCommandToSerialDevice(void* myclass, int cmd, int params, int id) {
   static_cast<MyClass*>(myclass)->sendCommandToSerialDevice(cmd,params,id);
}
Run Code Online (Sandbox Code Playgroud)

并且,在 C 代码中,输入

void* myclass = MyClass_create();
MyClass_sendCommandToSerialDevice(myclass,1,2,3);
MyClass_release(myclass);
Run Code Online (Sandbox Code Playgroud)

这看起来很简单,但我不明白的是,头文件必须引用MyClass(不用介意static_cast),但我想用 C 编译器(gcc)而不是 C++ 编译器(g++)编译我的 C 代码)。

这是行不通的。如何从使用 C 编译器编译的 C 代码调用 C++ 成员函数?

c c++ class extern

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

在Windows中将.gdbinit放在哪里?

并且应该调用它.gdbinit还是gdb.ini

我以为我会尝试这个文件。

我正在使用MinGw的Vectorcast进行测试。我将名称(.gdbinitgdb.ini)的文件都复制到了Vectorcast目录和MinGW bin目录中gdb.exe,因为我不确定该目录是the current working directory,但看不到该文件的任何内容。

那么,我应该把它放在哪里,我应该怎么称呼它呢?

windows gdb mingw gdbinit

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

为什么我的查询返回的结果很多?

我有一群候选人,他们有过一个或多个工作,每个人都在一家公司,使用一些技能。

糟糕的 ascii 艺术如下:

         ---------------                              ---------------   
         | candidate 1 |                              | candidate 2 |
         --------------- \                             --------------      
           /              \                                 |
       -------              --------                        etc
       |job 1|              | job 2 |  
       -------              ---------  
        /     \              /      \  
  ---------   ---------  ---------   --------  
  |company |  | skills | |company | | skills |  
  ---------   ---------  ---------- ----------  
Run Code Online (Sandbox Code Playgroud)

这是我的数据库:

mysql> describe jobs;
+--------------+---------+------+-----+---------+----------------+
| Field        | Type    | Null | Key | Default | Extra          |
+--------------+---------+------+-----+---------+----------------+
| job_id       | int(11) | NO   | PRI …
Run Code Online (Sandbox Code Playgroud)

mysql sql join query-optimization

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

Leaflet.markercluster - 如何计算markerClusterGroup中的所有标记?

我正在使用Leaflet.markercluster

这是我的代码,基于各种相关问题:

    // Takes an L.markerClusterGroup as input parameter
    Self.GetNumMarkersInClusterGroup = function(clusterGroup)
    {
        Self.map.eachLayer(function (layer) {
            if (layer.getChildCount) {
// somehow need to check here for our desired cluter group

                console.log('Cluster group has ' + layer._childClusters.length + 'layers')        ;
                console.log('With a total of ' + layer._childCount + ' markers');  
                }
        });
    }       // GetNumMarkersInClusterGroup()
Run Code Online (Sandbox Code Playgroud)

但是,layer.getChildCount未定义:-( 我做错了什么?


相关问题:

leaflet leaflet.markercluster

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

有没有 C++ 方法来获取标量的最小值/最大值?

我们的单元测试测试最小/最大值。如果被测试变量的基础数据类型发生变化,那么测试就需要更新——如果我们发现它并记得这样做的话。

如果我们只谈论unit8_t, 16, 32, 64,有没有办法在单元测试中说“变量的最小/最大值” - 只要它是这些类型之一?

例如,如果unit8_t height变为unit16_t height,我不想更新最小/最大单元测试。

如果我能为这些简单的测试做到这一点,我会很高兴。其他任何事情都是奖金。

c++ c++14

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