Articles of c + +

参数与Linux中的原型错误不匹配

我有以下函数声明的头文件: extern getEmailDetailsResult * getemaildetails_5(getEmailDetailsInput *, CLIENT *); 在我的.C文件中,函数的定义是 getEmailDetailsResult* getemaildetails_5(inputParams, rqstp) getEmailDetailsInput *inputParams; struct svc_req *rqstp; 当我在Unix中编译我的程序时,编译成功了。 但在Linux(gcc 4.1.2),我得到以下错误"error: argument ârqstpâ doesnât match prototype" 。 具有函数原型的.h文件在编译时由OS生成。 什么可能是在Linux的错误的原因?

未定义的引用'cvCreateKalman'

我一直在研究一个简单的Qt C ++ OpenCV应用程序,我想集成一个卡尔曼滤波器。 我包括: opencv/cv.h;opencv/highgui.h and opencv/cxcore.h; 在我的.pro文件中我有: INCLUDEPATH + = -I / usr / include / opencv LIBS + = -lopencv_core \ -lopencv_highgui \ -lopencv_imgproc 但是,当我这样做CvKalman* kalman = cvCreateKalman(8,4,0); 我只是得到未定义的参考cvCreateKalman和collect2:ld返回1退出状态。 编译输出不提供其他信息。 我尝试在网上find帮助,但谷歌并没有真正的帮助。 我也试图包括更多的OpenCV库像毫升或对象跟踪,但没有发生。 对于我来说,似乎CvKalman , CvKalman和cvCreateKalman在自动完成中可用,因为在加载原始的库之后… 任何帮助将不胜感激! 谢谢。

在Linux中使用C ++移动文件

我正在尝试写一些在所有平台上跨卷移动文件的东西。 目前,我使用重命名(…)function来移动文件,这可以在Windows上的卷/驱动器上运行。 但是,在Linux上,我得到一个EXDEV错误(通过strace),杀死我的应用程序:( 看来,我可能需要通过系统(…)调用“MV”,但这似乎很hacky。 这个,或者整合到我的应用程序,这不是一个微不足道的操作。 有没有其他的select可供我使用? 感谢您的时间。

X获取并发送按键C ++

我想为Linux做一个文本replace程序。 即我input类似.alog的东西,它被replace为/ usr / local / apache / logs /。 我知道我可以用alaises做到这一点,但是我经常远程login那些没有这个问题的机器。 我也有兴趣做这个学习的目的。 我在网上看到一些关于抓取的信息,并在X中发送了一个窗口的按键,但在工作区中找不到所有窗口的信息。 任何build议如何做到这一点将不胜感激。

单声道全球热键

我试图在Mono和X11中实现全局热键。 不幸的是,应用程序使用System.Windows.Forms ,所以我不能使用在这个问题中提出的GDK#事件filter。 使用XGrabKey作品,但我有事件循环的问题。 closures应用程序时,处理X11事件循环的线程仍挂在XNextEvent 。 有没有办法呢? 我宁愿不要求XPending投票。 我可以以某种方式取消XNextEvent或发送虚拟事件吗? 我在根窗口调用XGrabKey ,所以不幸的是我没有得到像DestroyNotify或UnmapNotify事件。

Ubuntu的C ++更新框架

我已经编写了一个主要用于Ubuntu Linux的C ++应用程序,并且正在寻找一个自动更新框架,也就是说,我希望应用程序检查更新并在可用和authentication时下载它们。 我一直无法findLinux上的C ++框架。 我find了TUF,但是这是python,Sparkle是OSX。 那么有谁知道一个能够帮助我的框架?

LD_PRELOAD不预载所有符号

我正在尝试LD_PRELOAD函数,如mmap , read , open , clone等…,但是当某些函数成功获取LD_PRELOADed时,其他人则不会。 例如mmap , read和open完全被预加载,但clone不是,虽然我知道肯定clone被从我的程序调用strace报告,因为我使用pthreads。 这里clone不是LD_PRELOAD的原因是什么?

监视一个进程(一切)

我想监视一个进程和它所做的一切(每一个信号都给SIGINT什么)。 有没有办法做到这一点? 我正在使用Linux(确切地说,Ubuntu 11)

所有系统进程的Linux CPU亲和力

有没有办法将除我自己的进程的线程以外的所有系统进程设置为他们自己的CPU,而无需手动设置每个PID。 我在Fedora上使用C,并且想在程序启动之前设置它。

timer_getoverrun()在使用sleep()时的行为不像预期的那样

这里是一个程序,它和sleep()子程序一起使用POSIX per-process定时器。 定时器到期时发送的信号已被设置为SIGUSR1而不是SIGALRM ,因为SIGALRM可能在sleep()内部使用,但似乎仍然不起作用。 我使用命令行timer-overruns -d 1 -n 10000000 (1 cs间隔)来运行程序,理论上,我们应该在对sigwaitinfo()调用之间预计有100次sigwaitinfo() 。 但是, timer_getoverrun()返回0。 我也尝试过使用一个耗时for循环来引入延迟的版本。 在这种情况下,超限被logging下来。 有谁知道为什么发生这种情况? 我正在运行一个3.4 Linux内核。 节目源 /* * timer-overruns.c */ #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <signal.h> #include <time.h> // Signal to be used for timer expirations #define TIMER_SIGNAL SIGUSR1 int main(int argc, char **argv) { int opt; int d […]