получаване на exit code в C програма
5 отговора
224 прегледа
получаване на exit code в C програма
Здравейте,
Имаме програма на С, писана с VisualStudio 6.
Да допуснем следната ситуация: имаме функция, която по някое време прави exit(1).
Чрез atexit( foo ) сме се закачили и можем да разберем кога става това.
Въпросът е, как във функцията foo да разберем кода, подаден на exit ( това "1" )?
С errno не става, връща винаги "9", с _errno() също, пак дава "9" :)
И въпрос 2, как можем да махнем "куката", сложена с atexit?
Имаме програма на С, писана с VisualStudio 6.
Да допуснем следната ситуация: имаме функция, която по някое време прави exit(1).
Чрез atexit( foo ) сме се закачили и можем да разберем кога става това.
Въпросът е, как във функцията foo да разберем кода, подаден на exit ( това "1" )?
С errno не става, връща винаги "9", с _errno() също, пак дава "9" :)
И въпрос 2, как можем да махнем "куката", сложена с atexit?
Re: получаване на exit code в C програма
Може би с глобална променлива? Правиш си фунцкия/макрос myexit която слага кода в тази глобална променлива и вика истинската exit функция.
Така или иначе, програмата ти е само една, т.е. няма кой да сложи друга стойност в тази променлива.
Btw, VC-то може вече да си има такава? Нямам run-time около мене да видя...
---
Не е важно да си добър, важното е да си ман-и-як!
Така или иначе, програмата ти е само една, т.е. няма кой да сложи друга стойност в тази променлива.
Btw, VC-то може вече да си има такава? Нямам run-time около мене да видя...
---
Не е важно да си добър, важното е да си ман-и-як!
Re: получаване на exit code в C програма
za exit code, moje bi, da si napishete sobstwen exit() koito wika
ot swoia strana tozi ot CRT, kato predi towa si zabiwate koda w
niakoia globalna promenliwa :)
za sprawka:
X:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\CRT0DAT.C
_exit ne izwikwa funkciite zakacheni s atexit
inache, oswen da widite source na atexit w
X:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\ONEXIT.C
drugo ne se sehtam... tam ima dwe promenliwi kym nachaloto i
kraia na blok ot pointeri kym funkciite, triabwa da si namerish twoia
pointer w bloka, da go zamajesh i da go resiz-wash wyprosnia block.
ot swoia strana tozi ot CRT, kato predi towa si zabiwate koda w
niakoia globalna promenliwa :)
za sprawka:
X:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\CRT0DAT.C
_exit ne izwikwa funkciite zakacheni s atexit
inache, oswen da widite source na atexit w
X:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\ONEXIT.C
drugo ne se sehtam... tam ima dwe promenliwi kym nachaloto i
kraia na blok ot pointeri kym funkciite, triabwa da si namerish twoia
pointer w bloka, da go zamajesh i da go resiz-wash wyprosnia block.
Re: получаване на exit code в C програма
Ako s global variable ne stava, moje da ia zapishe vyv file i da ia chete ot tam 
Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Re: получаване на exit code в C програма
eto kakvo kazva man:
$man exit
ala-bala (3) atexit
$man atexit
ala-bala (3) on_exit
$man on_exit
ala-bala.
taka che OTGOVORA na vaprosa ti e:
on_exit:
[линк]
a saveta mi e RTFM :)
$man exit
ala-bala (3) atexit
$man atexit
ala-bala (3) on_exit
$man on_exit
ala-bala.
taka che OTGOVORA na vaprosa ti e:
on_exit:
[линк]
a saveta mi e RTFM :)