Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 来自Xlib的消息来源:“引用;“杀死”;_Linux_Xlib - Fatal编程技术网

Linux 来自Xlib的消息来源:“引用;“杀死”;

Linux 来自Xlib的消息来源:“引用;“杀死”;,linux,xlib,Linux,Xlib,我使用ImLib2定期从Xlib应用程序中获取图像;以及使用libxdo向应用程序窗口发送假键信号。大约10分钟后,我的命令行程序终止,并显示消息“Killed” 我对X编程相当陌生。有人知道“Killed”消息是从哪里发送的吗?您启动命令行程序时是否在后台添加了一个尾随的“&”?如果是这样,您可能还需要在命令之前执行“nohup”。假设您的程序名为grab.sh,您可能应该这样调用它: nohup grab.sh & Imlib_Image ii = imlib_create_ima

我使用ImLib2定期从Xlib应用程序中获取图像;以及使用libxdo向应用程序窗口发送假键信号。大约10分钟后,我的命令行程序终止,并显示消息“Killed”


我对X编程相当陌生。有人知道“Killed”消息是从哪里发送的吗?

您启动命令行程序时是否在后台添加了一个尾随的“&”?如果是这样,您可能还需要在命令之前执行“nohup”。假设您的程序名为grab.sh,您可能应该这样调用它:

nohup grab.sh &
Imlib_Image ii = imlib_create_image_from_drawable(0,x,y,w,h,1);
imlib_context_set_image(ii);
DATA32 *data = imlib_image_get_data();
examine_data(data);
imlib_free_image();
如果你做了一个

echo TMOUT is $TMOUT
看看

TMOUT is 600

然后发生的是您调用命令的终端会话在
$TMOUT
秒的不活动后被终止,终止了您的进程。
nohup
命令将防止进程被终止。

问题似乎是由于每次调用
imlib\u context\u set\u image
后没有调用
imlib\u free\u image
函数造成的。内部循环现在看起来更像这样:

nohup grab.sh &
Imlib_Image ii = imlib_create_image_from_drawable(0,x,y,w,h,1);
imlib_context_set_image(ii);
DATA32 *data = imlib_image_get_data();
examine_data(data);
imlib_free_image();

使用所有警告和调试信息编译(
gcc-Wall-Wextra-g
)。启用
core
转储(可能使用
ulimit-c
)。如果您得到这样的转储,请使用
gdb
调试器进行事后分析。不过我以前没听说过nohup,所以我还是要试试。。。