bna-linuxiran
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linuxiran] [OT] C programming, variable size array


From: Mohammad Reza Ghorbani
Subject: Re: [linuxiran] [OT] C programming, variable size array
Date: Sat, 13 Dec 2003 07:47:08 +0330
User-agent: KMail/1.5

On Saturday 13 December 2003 00:51, Aryan Ameri wrote:
>   exit(EXIT_SUCCESS);
>    /*
>     proper posix way to exit.
>    */
>    return 0;
>
> Which one do you mean is the proper POSIX way of exiting? the exit
> function? or return 0? I always put return 0; though my incompetent
> instructor doesn't even put it. But I haven't seen the exit() function
> before, well, I haven't studdied the POSIX standard !!!
>
> Also, what does sizeof() do? from the code it seems to me it is used for
> counting. Am I right?
>
> You use if (((char)tempValue) == EOF) to determine EOF. I
>
>
> The way I have learned, I use the getchar() function to do so, as in
> while ( (tmp = getchar() ) != EOF )
>
> Any advantages to any method?
>
> Also now that I am here, let me abuse your knowledge, and ask one more
> thing. I just learned the gets() function, and when I use it on my gcc
> 3.2, it gives me a "the gets function is dangerous. It shouldn not be
> used" warning. I guess gets is now deprecated, but it is still being
> tought in our univ. Do you know what is the correct way of inputting a
> string of characters, not using gets ?
>
> Thanks again, very very much.
>
> Cheers

Salam . . .
  Aval mazerat mikham ke fingilish minivisam ! :( chon zabanam kheili bad 
hastesh ! ama mohem nist :

dar morede soale avalet ke farghe "exit(EXIT_SUCCESS);" ba "return 0" bood 
bayad begam ke agar dar akhare barname estefade beshan TAGHRIBAN hich farghi 
ba ham nadaran.ama betore koli az "exit(int)" baraye khoroje gheyre normal ya 
"ABNORMAL" estefade mishe.va baraye manteghe barname nevisi dorost nist 
darhalate normal az on estefade konim.(hatman midoni har meghdari ke main() 
return kone dar ENVAIROMENT VARIABLE e '$?' zakhire mishe ke ba shell
mitooni befahmi ke barname ba che error_codi kharej shode).
ama ye farghe kocholo baham daran ke momkene kasi az "exit(EXIT_SUCCESS);"
be jaie rerurn 0;"estefade kone (ama man jaie nadidam" :
bebin vaghti barnameie ma tamom mishe ye seri etefagh barash miyofde:
masalan:
1. agar TEMP FILE dasfte bashi ke khodet close nakarde bashi on "FILE *" close 
mishe.
2.ya buffere STDIO, flush mishe va gheire !
va momkene yeki bekhad az vasate barname NORMAL kharej she ! :-o 
return faghat male vaghtie ke reside bashi be akhare block!
vali akhare barname hich farghi baham nadaran!
ye chize dige ham begam :
bebin ye farghi mohem return ba exit dare :
return KeyWord hastesh va exit Function !
Performance KeyWord ha az Function ha kheili bishtare .
elatesham in ke KeyWord OVER_HEAD nadare vali function dare!
to C/C++ performance barname baromon kheili moheme! 
baraye hamin ba return 0 barnamaro tamom mikonim!
be khatere hamin fekr nemikonam marbot be ANSI ya POSIX bashe!
be in dalaiel estefade nemikonan !
-----------------------------------------------------------------------------------------------------------------------------------
ye chize dige baraye EOF begam !
mamolan to linux rasm bar ine ke barname haie ke az Terminal mikhan faghat 
vorodie chand khati begiran (MESLE PHP interpreter) vgahti kare user tamom 
shod,user bayad ye "CONTROL + C" bezane.
in jori chi mishe ?
ye Signal be barname ferestade mishe be esme SIGINIT ke barname nevis in 
signalo handel(catch) mikone! yani to barnamsh mige vaghti in signal resid ye 
kari bokon! 
agar dost dashti fekr mikonam az in ghabliyat estefade koni barnamat khoshgel 
mishe!
chon nemidonam cheghadara ba signal ashnaie bishtar tozih nemidam! vali 
agar khasti mitoni behem begi ke baz barat begam!
----------------------------------------------------------------------------------------------------------------------------------
ye chize dige :
gets tole vorodi ro chek nemikone va ta vaghti ke user '\n' type kone vorodi 
migire! khob in kheili bade! momkene to ye 'char str[20]' tarif koni vali 
tosh 45 CHAR berzan.in jori 25 khoneie badie hafezat kharab mishe!
va aslan malom nist chi be sare barnamat miyad!
agar esme BUFER_OVERFLOW ro shenide bashi bayad begam ke hameie in
exploit ha to interenet baraye deghat nakrdan be hamin moshkelat e!

baraye hamin agar to dashte bashi :
        char str[20];
behtare benivisi:
        fgets(str ,20 ,STDIN);

in khat daghighan kare hamono mikone vali kheili behtare !
----------------------------------------------------------------------------------------------------------------------------------
dar akhar pish nahad mikonam :
        http://www.advancedlinuxprogramming.com 
ro bekhoooonin !
-------------------------------------------------------------------------
     Ghorbanat
Mohammad Reza
     7 : 39 am





reply via email to

[Prev in Thread] Current Thread [Next in Thread]