Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

C - dojava greški

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Ostalo - ozbiljno -> Računala (općenito)
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
Silenoz
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 10. 2011. (18:45:11)
Postovi: (4F)16
Spol: zombi
Sarma = la pohva - posuda
= 5 - 3

PostPostano: 0:46 čet, 4. 12. 2014    Naslov: C - dojava greški Citirajte i odgovorite

Ima netko da ozbiljnije radi u C-u i da zna zašto se i kada koristi koja kombinacija dojave greškama pri prekidu programa zbog greške?
Sada smo na mrežama raditi masu novih načina obavjesti o grešci (perror(), herror(),..) i zanima me kada se koja verzija koristi i zašto točno baš ta?
Osim navedenih u zagradama, ostale kombinacije koje sam sustretao su:
-printf("..") i exit (neki broj)
-printf i return x, x!=0
-stdout (stderr, "..")

Do sada sam u C radio sa printf i exit(negativan_broj) i shvaćam da obavještava sustav da se dogodila greška (makar, još nisam vidio poslijedice korištenja toga ili običnog returna sa 0 ili bilo kojim drugim brojem), a na ovo ostalo sam gledao samo kao na varijaciju na temu. Trenutno pokušavam shvatiti preciznije pa me jako buni sve skupa.
Ima netko da ozbiljnije radi u C-u i da zna zašto se i kada koristi koja kombinacija dojave greškama pri prekidu programa zbog greške?
Sada smo na mrežama raditi masu novih načina obavjesti o grešci (perror(), herror(),..) i zanima me kada se koja verzija koristi i zašto točno baš ta?
Osim navedenih u zagradama, ostale kombinacije koje sam sustretao su:
-printf("..") i exit (neki broj)
-printf i return x, x!=0
-stdout (stderr, "..")

Do sada sam u C radio sa printf i exit(negativan_broj) i shvaćam da obavještava sustav da se dogodila greška (makar, još nisam vidio poslijedice korištenja toga ili običnog returna sa 0 ili bilo kojim drugim brojem), a na ovo ostalo sam gledao samo kao na varijaciju na temu. Trenutno pokušavam shvatiti preciznije pa me jako buni sve skupa.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
fireball
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 10. 2005. (18:49:17)
Postovi: (4AB)16
Spol: muško
Sarma = la pohva - posuda
26 = 100 - 74
Lokacija: s rukom u vatri i nogom u grobu

PostPostano: 1:14 čet, 4. 12. 2014    Naslov: Citirajte i odgovorite

jako jako dobro pitanje

malo sam lijen pisati pa cu polinkati na korisne stranice. preporucujem naucit koristit [tt]man[/tt] naredbu na linux (i unix) sustavima (a za vise ima i google)
[url=http://www.manpagez.com/man/3/perror/]perror (1)[/url], [url=http://www.cplusplus.com/reference/cstdio/perror/]perror (2)[/url]
[url=http://www.manpagez.com/man/3/herror/]herror[/url]

za C i C++ takoder prouci i [url]http://www.cplusplus.com[/url], jako korisna stranica
jako jako dobro pitanje

malo sam lijen pisati pa cu polinkati na korisne stranice. preporucujem naucit koristit man naredbu na linux (i unix) sustavima (a za vise ima i google)
perror (1), perror (2)
herror

za C i C++ takoder prouci i http://www.cplusplus.com, jako korisna stranica



_________________
I bow before you Veliki Limun, on je kiseo i zut Bow to the left
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 5:08 čet, 4. 12. 2014    Naslov: Re: C - dojava greški Citirajte i odgovorite

[quote="Silenoz"]Do sada sam u C radio sa printf i exit(negativan_broj) i shvaćam da obavještava sustav da se dogodila greška (makar, još nisam vidio poslijedice korištenja toga ili običnog returna sa 0 ili bilo kojim drugim brojem), a na ovo ostalo sam gledao samo kao na varijaciju na temu.[/quote]

[tt]exit(broj)[/tt] i [tt]main[/tt]-ov [tt]return broj[/tt] su ista stvar, osim sto [tt]exit(broj)[/tt] mozes staviti i u druge funkcije.

Za "posljedicu" broja pokreni ovaj program u konzoli na Linuxu:
[code:1]#include <stdio.h>
#include <stdlib.h>

int main(void) {
int e;

scanf("%d", &e);
exit(e);
}[/code:1]
Odmah iduca naredba (i dalje u konzoli) neka ti bude
[code:1]echo $?[/code:1]
To bi ti trebalo ispisati broj koji si unio programu:
[code:1]$ ./a.out
17
$ echo $?
17
$ ./a.out
19
$ echo $?
19[/code:1]

Prakticna svrha: zamisli da neki drugi program poziva ovaj tvoj. Tada taj moze, kroz tu povratnu vrijednost, dobiti informaciju o tome kako je i zasto program zavrsio (naravno, pod uvjetom da tvoj program vraca razne kodove za razne stvari i da autor programa koji poziva ovo tvoje zna koji su kodovi i koje je njihovo znacenje).

Npr. ovo ce se vrtiti dok ne upises 17 (ili ubijes nasilno):
[code:1]$ ./a.out; while [ $? != 17 ] ; do echo "Ajmo opet"; ./a.out ; done[/code:1]
Silenoz (napisa):
Do sada sam u C radio sa printf i exit(negativan_broj) i shvaćam da obavještava sustav da se dogodila greška (makar, još nisam vidio poslijedice korištenja toga ili običnog returna sa 0 ili bilo kojim drugim brojem), a na ovo ostalo sam gledao samo kao na varijaciju na temu.


exit(broj) i main-ov return broj su ista stvar, osim sto exit(broj) mozes staviti i u druge funkcije.

Za "posljedicu" broja pokreni ovaj program u konzoli na Linuxu:
Kod:
#include <stdio.h>
#include <stdlib.h>

int main(void) {
  int e;

  scanf("%d", &e);
  exit(e);
}

Odmah iduca naredba (i dalje u konzoli) neka ti bude
Kod:
echo $?

To bi ti trebalo ispisati broj koji si unio programu:
Kod:
$ ./a.out
17
$ echo $?
17
$ ./a.out
19
$ echo $?
19


Prakticna svrha: zamisli da neki drugi program poziva ovaj tvoj. Tada taj moze, kroz tu povratnu vrijednost, dobiti informaciju o tome kako je i zasto program zavrsio (naravno, pod uvjetom da tvoj program vraca razne kodove za razne stvari i da autor programa koji poziva ovo tvoje zna koji su kodovi i koje je njihovo znacenje).

Npr. ovo ce se vrtiti dok ne upises 17 (ili ubijes nasilno):
Kod:
$ ./a.out; while [ $? != 17 ] ; do echo "Ajmo opet"; ./a.out ; done



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Silenoz
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 10. 2011. (18:45:11)
Postovi: (4F)16
Spol: zombi
Sarma = la pohva - posuda
= 5 - 3

PostPostano: 1:45 sri, 10. 12. 2014    Naslov: Citirajte i odgovorite

Hvala obojici, sad je jasnije! :D

I fireball, otkrio si mi krasnu stvar sa [tt]man[/tt], thanx :D
Hvala obojici, sad je jasnije! Very Happy

I fireball, otkrio si mi krasnu stvar sa man, thanx Very Happy
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Ostalo - ozbiljno -> Računala (općenito) Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan