[linux] Nepochopitelny(mnou a zatial) problem s kodom v C

peter Fodrek fodrek na kasr.elf.stuba.sk
Čtvrtek Duben 4 16:01:33 CEST 2002


Vazeny kolegovia mam RH5.1 (driver pre jednu z mojich kariet na riadenie motorov je modul pre jadra 2.0.x a novsi nie je) a velmi divny problem:

rutina ktora sa ma spustat casovacom a ukoncit priebeh testu je nasledovna
void tim(int i)

{

write(2,"uz koncim",9);

stop=1;

}

vo funkcii main je kus kodu



if (argc<2) {cas_prace=10;printf("cas prace=%ld",cas_prace);}

else{cas_prace=(long)atoi(argv[1]);printf("cas_prace=%ld",cas_prace);}

act.sa_handler=tim;

//act.sa_mask=0;

act.sa_restorer=NULL;

act.sa_flags=SA_RESTART;

do{

pomoc=sigaction(SIGALRM,&act,&old);

}while(pomoc!=0);

ktory nastavi cas priebehu testu defualt 10 a prida obsluznu rutinu k SIGALRM

za nou je

itime.it_value.tv_sec=(long)cas_prace;

sprintf(str,"%ld",itime.it_value.tv_sec);

write(2,str,2);

do{

pomoc=setitimer(ITIMER_REAL,&itime,NULL);

}while(pomoc!=0);

starttime=time(NULL);

while (stop==0)

{curtime=time(NULL);

...

....

}



co je nastavenie timer-a,pre ukoncenie testu a 

 cyklus,v ktorom sa vykonava test rychlosti driver-a (karta ma v LINUX-e  odozvu 7,5-8,9ms na rozdiel od NT4.0SP6a, kde je odozva viac ako 300 ms!!!!)...

A teraz ten problem 

pri spusteni programu bez parametrov sa test po 10s zastavi,ale pri spusteni         s parametrom 10 (a.out 10) sa test nezastavi, pricom sa ani nevykona rutina tim!!!!!  Je to o to zaujimavejsie, ze pri oboch pripadoch skor uvedeny kod

sprintf(str,"%ld",itime.it_value.tv_sec);

write(2,str,2);



dava na stderr cislo 10,ako ma....

Neviete mi niekto,prosim, poradit?

Som z toho jelen....

kompilacia ak mate driver

gcc pokus.c -lacs0 -lacs2

Dakujem za kazdu pomoc,mozno som prehliadol nejaky parameter, alebo uz neviem... Nechcem vyhodit casovac, lebo vysledny projekt bude mat kopu casovacov a chcel som si otestovat ich funkcnost...



S pozdravom



Peter Fodrek

P.S. cely kod prilozeny, v cykle printf





------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://lists.linux.sk/pipermail/linux/attachments/20020404/4058e467/attachment.html 
------------- další část ---------------
Netextová příloha byla odstraněna...
Jméno: Pokus2.c
Typ: application/octet-stream
Velikost: 2733 bytes
Popis: [žádný popis není k dispozici]
Url : http://lists.linux.sk/pipermail/linux/attachments/20020404/4058e467/attachment.obj 


Další informace o konferenci linux