dポイントプレゼントキャンペーン実施中!

こんにちは。私のプログラミング能力が無いために困ってます。
timer_settimeを使って、インターバルが1sのタイマで100s後に終了させたいのですが、できません。環境はRedHatLinux7.1Jです。

下記のプログラムを実行するとtimer_createとtimer_settimerのところで、errno=38 "function not implemented"とでます。原因、どうしたらよいかわかりません。どのように修正したらうごくんでしょうか?
教えてください。


#include <signal.h>
#include <time.h>
#include <error.h>
#include <errno.h>

extern int errno;

timer_t timerid;
struct itimerspec one_minute = { {60, 0}, {0, 0} } ;
struct sigaction sigact;
struct sigevent sigev;

int i,end;

void handler()
{
i++;
if (i == 100) end = 1;
printf("きてます\n");
}

int main()
{


i=0;
end=0;

sigact.sa_handler = handler;
sigact.sa_flags = 0;

if (sigaction(SIGUSR1, &sigact, (struct sigaction *)NULL)== -1) {
printf("%d:%s\n",errno,strerror(errno));
exit(1);
}

sigev.sigev_notify = SIGEV_SIGNAL;
sigev.sigev_signo = SIGUSR1;

if (timer_create(CLOCK_REALTIME, &sigev, &timerid)
== -1) {
printf("%d:%s\n",errno,strerror(errno));
exit(1);
}

if (timer_settime(timerid, 0, &one_minute, (struct itimerspec
== -1) {
printf("%d:%s\n",errno,strerror(errno));
exit(1);
}

while (!end){
pause();
}
if (timer_delete(timerid) == -1) {
perror("timer_delete");
exit(1);
}

return 0;
}


宜しくお願いします。

A 回答 (1件)

>if (timer_settime(timerid, 0, &one_minute, (struct itimerspec == -1) {



/*
 括弧の関係がおかしくありません?
*/
    • good
    • 0
この回答へのお礼

ありがとうございます。
上記のプログラムは、コピーしてきたのですが、変な操作で
ちょっと文字が抜けていただけだとおもいます。

なぜかわかりませんが、いきなりできるようになりました。
ありがとうございました。

お礼日時:2002/10/31 18:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!