小编Mat*_*ner的帖子

相当于Linux上的GetTickCount()

我正在寻找GetTickCount()与Linux 相当的东西.

目前我正在使用Python time.time(),可能是通过调用gettimeofday().我担心的是,如果时钟被弄乱,例如NTP,返回的时间(unix时期)可能会不规律地改变.一个简单的过程或系统壁挂时间,只能以恒定的速率正向增加就足够了.

是否存在C或Python中的任何此类时间函数?

c python linux time

28
推荐指数
3
解决办法
3万
查看次数

如何使用gdb在C++中获取当前异常的值和类型?

gdb允许一个人在被抛出时捕获异常,并在被捕获时捕获异常.但有时抛出异常的行没有符号,或者在异常处理期间触发断点.如何检查当前异常的值?

c++ debugging gdb exception inspection

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

如何将GCC输出到stdout?

通常指示GCC通过-o开关输出到文件.如果没有提供,似乎决定了适当的名称和输出.如何让GCC将其生成的输出写入stdout?

c gcc

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


使用static_assert检查传递给宏的类型

我很遗憾地从我的库的原始版本中遗留了几个宏,这些宏使用了一些非常疯狂的C.特别是,我有一系列宏,希望将某些类型传递给它们.有可能做一些事情:

static_assert(decltype(retval) == bool);
Run Code Online (Sandbox Code Playgroud)

如何?有没有聪明的选择?

是的我知道宏很糟糕.我知道C++不是C等.

Update0

这是一些相关的代码源文件.欢迎提出建议.原来的问题仍然是一样的.

c c++ g++ static-assert visual-studio-2010

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

取决于make文件本身

如果Makefile本身被更改,安全的赌注是将所有目标都视为过时.

有没有一种聪明的方法来添加这种依赖?还有其他选择吗?

makefile gnu-make

25
推荐指数
3
解决办法
5928
查看次数

检测套接字挂断而不发送或接收?

我正在编写一个TCP服务器,可能需要15秒或更长时间才能开始生成对某些请求的响应体.如果响应需要几秒钟才能完成,一些客户端喜欢在最后关闭连接.

由于生成响应非常占用CPU,因此我宁愿在客户端关闭连接的瞬间暂停任务.目前,在发送第一个有效负载并收到各种挂起错误之前,我没有发现这一点.

如何在不发送或接收任何数据的情况下检测到对等方已关闭连接?这意味着recv所有数据都保留在内核中,或者send实际上没有数据传输.

c python sockets linux tcp

25
推荐指数
3
解决办法
3万
查看次数

从Mercurial转换为Subversion

由于缺乏对几种工具的Mercurial支持以及管理压迫,因此有必要将多个试用Mercurial存储库转换为Subversion以符合公司标准.

是否有任何工具或建议如何在不丢失修订历史记录等的情况下实现这一目标?

svn migration version-control mercurial

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

C++ unique_ptr和map

我正在尝试使用C++ 0x unique_ptr,map如下所示:

// compile with `g++ main.cpp -std=gnu++0x`

#include <string.h>    
#include <map>
#include <memory>

using namespace std;

struct Foo {
    char *str;    
    Foo(char const *str_): str(strdup(str_)) {}
};

int main(void) {
    typedef std::map<int, unique_ptr<Foo>> Bar;
    Bar bar;
    auto a = bar.insert(Bar::value_type(1, new Foo("one")));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是GCC给了我以下错误(缩短了,我认为这是相关部分,请在您自己的C++编译器上测试):

main.cpp:19:   instantiated from here
/usr/include/c++/4.4/bits/unique_ptr.h:214: error: deleted function ‘std::unique_ptr::unique_ptr(const std::unique_ptr&) [with _Tp = Foo, _Tp_Deleter = std::default_delete]’
/usr/include/c++/4.4/bits/stl_pair.h:68: error: used here

我真的不确定我做错了什么,这适用于MSVC.我发现了非常相似的问题,看似相似,但是他们的解决方案对我不起作用.

matt@stanley:/media/data/src/c++0x-test$ gcc --version …

c++ gcc stl unique-ptr c++11

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

运行ffmpeg而不输出配置信息?

我调用ffmpegsubprocess.Popen,并试图捕捉stderr输出并将它写入logging.

args = ['ffmpeg', '-i', path]
if start:
    args += ['-ss', start]
if end:
    args += ['-t', end]
args += [
    '-vcodec', 'copy',
    '-acodec', 'copy',
    '-scodec', 'copy',
    '-f', 'mpegts',
    '-y', '/dev/stdout']
self.child = subprocess.Popen(
    args,
    stdin=open(os.devnull, 'rb'),
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)

ffmpeg 生成大量配置信息,如下所示:

FFmpeg版本0.6.2-4:0.6.2-1ubuntu1,版权所有(c)2000-2010 Libav开发人员于2011年3月22日15:55:04建立了gcc 4.5.2
配置: - extra-version = 4:0.6 .2-1ubuntu1 --prefix =/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable -libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc - -enable-swscale …

python logging subprocess ffmpeg stderr

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