LINUX.ORG.RU

Прога завершает работу с сообщением


0

0

"Alarm clock" на терминал. Что это такое ? Как я понимаю это SIGALRM, но почему тогда не работает код:

#include <kapp.h>
#include <kcmdlineargs.h>
#include <kaboutdata.h>
#include <klocale.h>
#include <kapplication.h>

#include "ksquirrel.h"
#include "sq_about.h"
#include "sq_hloptions.h"

#include <signal.h>

void signalSIGALARM(int sig)
{
	printf("SIGNAL %d\n", sig);

	signal(SIGALRM, SIG_IGN);
}


//////////////////////////////////////////////////

static KCmdLineOptions options[] =
{
	{"+[file or folder to open]", I18N_NOOP("File or folder to be opened at startup."), 0},
	KCmdLineLastOption
};         

int main(int argc, char *argv[])
{
	signal(SIGALRM, signalSIGALARM);

	KSquirrel 			*SQ;
	SQ_HLOptions		*high;

	KCmdLineArgs::init(argc, argv, &aboutData);
	KCmdLineArgs::addCmdLineOptions(options);

	KApplication	a;

	KCmdLineArgs *sq_args = KCmdLineArgs::parsedArgs();

	high = new SQ_HLOptions;

	if(sq_args->count() > 0)
		high->path = sq_args->url(0).path();

	SQ = new KSquirrel(high, 0, "KMainWindow");

	a.setMainWidget(SQ);

	sq_args->clear();

	return a.exec();
}

Сообщения "SIGNAL 14" не выдаётся, но выдаётся тот же "Alarm clock".
Спасибо.

Насколько я понял, ты юзаешь какую-то умную либу (kde?). Так вот, может быть она при инициализации переустанавливает обработчик сигнала? Попробуй установить свой обработчик _после_ инициализации либы.

nobody ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.