小编Let*_*_Be的帖子

基于Moose的Web框架

是否有基于Moose的Web框架?

我已经习惯了Moose,所以如果有基于它的东西,它会很可爱:)

perl web-frameworks moose

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

信号 - c99 vs gnu99

我有以下代码.当我使用gnu extensions(-std=gnu99)编译它时,程序将在结束之前捕获5 SIGINT(我期望).在没有它的情况下编译(-std=c99)在第二个之后结束(并且只输出一行).

我错过了什么?

#include <signal.h>
#include <stdlib.h>
#include <stdio.h>

int int_stage = 0;
int got_signal = 0;

void sigint(int parameter)
{
  (void)parameter;
  got_signal = 1;
  int_stage++;
}

int main()
{
  signal(SIGINT,sigint);

  while(1)
  {
    if (got_signal)
    {
      got_signal = 0;
      puts("still alive");
      if (int_stage >= 5) exit(1);
    }
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c signals gnu c99

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

是否定义了打印 NULL 字符串?

这段代码有定义的行为吗?

char *str = NULL;
printf("%s\n",str);
Run Code Online (Sandbox Code Playgroud)

在 C++(98/03 和 11)和 C (99) 标准的上下文中。

c c++ standards undefined-behavior

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

Git diff忽略

是不是可以在git diff中忽略某些文件?我特别感兴趣的是过滤掉Makefile.in,Makefile,configure(以及所有自动生成的垃圾).

git autotools

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

摆脱graphviz输入文件中的传递关系

我有相对复杂的graphviz输入文件,包含传递关系.不幸的是,这些使得输出过于复杂而不添加任何其他信息.

有没有简单的方法从输入/输出中去除这些传递关系.

输入示例:

digraph main { 
subgraph cluster_Session_0 {
color = black;
label = "Session_0";
 "Batch_0_0";
}
subgraph cluster_Session_1 {
color = black;
label = "Session_1";
 "Batch_1_0" "Batch_1_1" "Batch_1_2" "Batch_1_3" "Batch_1_4";
}
subgraph cluster_Session_2 {
color = black;
label = "Session_2";
 "Batch_2_0" "Batch_2_1" "Batch_2_2" "Batch_2_3";
}
subgraph cluster_Session_3 {
color = black;
label = "Session_3";
 "Batch_3_0";
}
subgraph cluster_Session_4 {
color = black;
label = "Session_4";
 "Batch_4_0";
}
subgraph cluster_Session_5 {
color = black;
label = "Session_5";
 "Batch_5_0";
}
subgraph …
Run Code Online (Sandbox Code Playgroud)

graphviz

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

在unix系统中执行

#include<unistd.h>

int main(int argc, char **argv)
{
 int ret;

 ret = execve("/bin/bash", NULL, NULL);

 return 0;

}
Run Code Online (Sandbox Code Playgroud)

我很困惑为什么在execve中传递null值请帮助.....

c

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

字节交换和C++/C.

我在comp.lang.c ++上做了一个帖子,得到了这个

http://groups.google.com/group/comp.lang.c++/browse_thread/thread/afc946826945bdb1/90850f6a0e0edd2d#90850f6a0e0edd2d

但这仍然不是答案.

我对二进制读操作有点困惑.

我试图用流函数读取二进制文件.这是商业程序(ANSYS)的结果文件,我知道文件的结构,至少从手册中知道.

该文件的结构为记录,程序以fortran编写.所以结构就像

记录长度(int)虚拟整数数据(可以是int,double)虚拟整数

第一个记录是100个整数块,其中这对应于上述表示中的数据.

如果我开始读取文件并读取第一个值,即记录长度(整数),我必须交换字节以获得正确的值100.

我不明白为什么我必须交换字节,因为这个文件是在同一台机器上生成的,它们应该使用相同的系统特定例程,所以这不应该是一个问题,但似乎并非如此.还有其他事情正在发生.我无法理解这一点.软件是否可以强制交换字节,我很难理解原因?

任何评论都表示赞赏.

这是一个天真的测试用例

int main () {
  ifstream myfile;
  char intBuffer[4];
  myfile.open ("truss.rst", ios::binary);
  myfile.read(intBuffer, sizeof(int));
  //cout << *((int*)intBuffer) << endl;
  // if I do not use this portion-
  // I do not get what I want
  char *cptr, tmp;
  tmp = intBuffer[0];
  intBuffer[0] = intBuffer[3];
  intBuffer[3] = tmp;
  tmp = intBuffer[1];
  intBuffer[1] = intBuffer[2];
  intBuffer[2] = tmp;
  // -----------------------------
  cout << *((int*)intBuffer) << endl;

  myfile.close();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

最好的,美国

c c++ binaryfiles

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

C++ 11中的易失性 - 后续行动

这是C++ 11中Volatile的后续内容

在这个问题中,我被告知下面的代码在C++ 11中表现出未定义的行为,这让我很困惑.我是否可以阅读有关C++ 11中volatile的行为的任何材料(可能是标准的部分)?

或者有人可以解释问题所在吗?

#include <iostream>
#include <chrono>
#include <thread>
using namespace std;

volatile int notify;

void watcher()
{
    this_thread::sleep_for(chrono::seconds(2));
    notify = 1;
    cout << "Notification sent." << endl;
}

int main()
{
    thread(watcher).detach();

    notify = 0;
    while (!notify)
    {
        cout << "Waiting." << endl;
        this_thread::sleep_for(chrono::seconds(1));
    }

    cout << "Notification received." << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ volatile c++11

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

使用Boost :: Spirit解析异构数据

我想弄清楚如何解决以下问题.

我有以下格式的结构:

struct Data
{
     time_t timestamp;
     string id;
     boost::optional<int> data1;
     boost::optional<string> data2;
     // etc...
};
Run Code Online (Sandbox Code Playgroud)

这应该用以下格式的单行字符串解析:

human_readable_timestamp;id;key1=value1 key2=value2.....
Run Code Online (Sandbox Code Playgroud)

当然,键的排序不必与结构中元素的顺序相匹配.

Boost :: Spirit是否适合此类数据?我该如何处理?我已经完成了这些示例,但我无法从示例中获得符合我要求的代码.

c++ boost boost-spirit boost-spirit-qi

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

在分叉时执行外部程序是不可取的

我有一个大的服务器软件,可以占用4-8GB的内存.

这使得fork-exec很麻烦,因为fork本身可能需要很长时间,而且默认行为似乎是fork将失败,除非有足够的内存用于整个驻留内存的副本.

因为在开始分析时,我开始表现为最热门的地方(60%的时间花在分叉上),我需要解决它.

避免fork-exec例程的最简单方法是什么?

c linux posix

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

确定 kubernetes pod 重启的原因

我在 Kubernetes 部署方面遇到了问题。最近我们遇到了一个问题,其中一个 pod 频繁重启。

里面的服务使用 C++,带有 Google Logging,并且应该在崩溃时转储堆栈跟踪(在本地运行时确实会这样做)。

不幸的是,我能找到的与 Pod 重启相关的唯一日志消息来自containerd,只是说“shim reaped”。

我是否需要打开一些额外的日志记录/监控才能保留重新启动的原因?

c++ docker kubernetes

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

如何使用自定义值定义类型?(typedef,enum)

在我的许多类的程序中,我使用它Color作为一个类型,它应该只有WHITEBLACK作为它的可能值.

所以我想写一下:

Color c; 
  c = BLACK;
  if(c == WHITE) std::cout<<"blah";
Run Code Online (Sandbox Code Playgroud)

和类似的东西.在我所说的所有类和标题中#include "ColorType.h",我都有Color c类属性,但我不知道该写些什么ColorType.h.我尝试了一些变化,typedef enum Color但它没有完全解决.

c++ enums types

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