小编bk1*_*k1e的帖子

信号处理程序是否有可能在"exec"之后存活?

我为进程写了一个信号处理程序,然后fork(),信号处理程序将应用于父进程和子进程.如果我用"exec"替换子进程,则信号处理程序不再存在.

我知道发生这种情况是因为"exec"调用将使用它自己覆盖子进程地址空间.我只是想知道即使在"exec"调用之后是否有办法让信号处理程序工作?

linux signals exec

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

未初始化的struct成员是否始终设置为零?

考虑一个C结构:

struct T {
    int x;
    int y;
};
Run Code Online (Sandbox Code Playgroud)

当这部分初始化时,如

struct T t = {42};
Run Code Online (Sandbox Code Playgroud)

TY保证是0或者这是编译器的实现决定?

c c++

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

使用Visual C++ 2008在调试模式下找不到MSVCR90D.dll

我有Visual C++ 2008的问题.我已经安装了opencv,我已经创建了一个新程序,我构建它没有错误.但是,它抱怨在调试时没有找到MSVCR90D.dll.在发布模式下,完全没有问题.

我在其中一个Winsxs文件夹中有MSVCR90D.dll.有谁知道这个问题的解决方案?这是一个已知的错误?

杰拉德

c++ debugging winsxs msvcr90d.dll visual-studio-2008

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

从网络bitcount转换为网络掩码的最佳方法是什么?

例如,如果我有像172.20.10.0/24这样的网络规范,那么"24"就是bitcount.将其转换为像0xffffff00这样的网络掩码的最佳方法是什么?

networking bit-manipulation

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

通用非侵入式缓存包装器

我正在尝试创建一个类,它为泛型类添加功能,而不直接与包装类接口.一个很好的例子是智能指针.具体来说,我想创建一个包装器来缓存通过包装器调用的一个(或任何?)方法的所有i/o.理想情况下,缓存包装器具有以下属性:

  • 它不需要以任何方式更改包装类(即通用)
  • 它不需要以任何方式更改包装类(即通用)
  • 它不会显着改变使用该对象的界面或语法

例如,像这样使用它真的很好:

CacheWrapper<NumberCruncher> crunchy;
...
// do some long and ugly calculation, caching method input/output
result = crunchy->calculate(input); 
...
// no calculation, use cached result
result = crunchy->calculate(input); 
Run Code Online (Sandbox Code Playgroud)

虽然像这样的傻瓜会没问题:

result = crunchy.dispatch (&NumberCruncher::calculate, input);
Run Code Online (Sandbox Code Playgroud)

我觉得这应该可以在C++中实现,尽管可能在某个地方有一些句法体操.

有任何想法吗?

c++ generics templates metaprogramming memoization

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

在向量中存储重复的字符串时节省内存?

我正在使用C++,它是STL.我有一个大的(100MB +)文本文件.这个文件只有很多"单词"(由空格分隔的字符串),如:

sdfi sidf ifids sidf assd fdfd fdfd ddd ddd
Run Code Online (Sandbox Code Playgroud)

我需要将每个"单词"放在一个向量中:

vector<string> allWordsInFile;
Run Code Online (Sandbox Code Playgroud)

因此,对于我从文件中读取的每个单词,我都这样做:

allWordsInFile.push_back(word);
Run Code Online (Sandbox Code Playgroud)

该文件有很多重复的单词,我正在寻找节省内存的方法.每个单词都需要在向量中的正确位置表示.如果我可以只有一个向量之外的所有单词的列表然后只是在向量中放置一个引用,那将是很好的,但据我所知,不可能将引用放在向量中.然后我想到只存储指向单词的指针,但是每个单词的长度都很短,以至于我认为它不会产生太大的影响?(每个指针在我的系统上是4个字节,大多数字符串可能大小相同).

有人可以提出另一种方法吗?

c++ memory string vector

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

读取数组末尾是否安全?

假设我有一个像这样的构造函数:

MyColor(uint8 vec[]) {
r = vec[0];
g = vec[1];
b = vec[2];
a = vec[3];
}
Run Code Online (Sandbox Code Playgroud)

但我称之为(3个元素而不是4个):

uint8 tmp[] = {1,2,3};
MyColor c(tmp);
Run Code Online (Sandbox Code Playgroud)

但是现在vec[3]是未定义的...将此值赋给是否安全a?如果没有,没有很好的解决方法来检查是否vec[3]设置了吗?

c++ pointers

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

GTK:如何设置VBox的高度?

嗨,我正在使用GTKMM制作应用程序.截图如下:

截图

问题是,我无法将"我的标签"定位在顶部,即搜索框下方.

我将名称,搜索框,搜索按钮打包到HBox中,然后将其打包到VBox中,然后将MyLabel打包到VBox中.

我认为问题是VBox给两行分配​​了相同的高度,所以即使我将MYLabel对齐到顶部,但它的顶部是屏幕的中间位置'因此VBox在两行之间平均分配高度.

有没有办法设置VBox行的高度?或任何其他出路?

c++ linux gtk gtkmm

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

不能使用STL的字符串类

之前遇到过这个问题,但忘了我是怎么解决的.

我想使用STL字符串类,但编译器抱怨没有找到它.这是完整的.h文件.

#ifndef MODEL_H
#define MODEL_H

#include "../shared/gltools.h"  // OpenGL toolkit
#include <math.h>
#include <stdio.h>
#include <string>
#include <iostream>

#include "Types.h"

class Model
{

public:

    obj_type_ptr p_object;
    char Load3DS (char *p_filename);
    int LoadBitmap(char *filename);

    int num_texture;
    string fun("alex");

    Model(char* modelName, char* textureFileName);
};

#endif
Run Code Online (Sandbox Code Playgroud)

c++ string stl

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