Justtechjobs.com Find a programming school near you






Online Campus Both


php4-beta | 199912

Re: [PHP4BETA] TSRM problems... UMBRs everywhere:-(( From: Paul DuBois (paul <email protected>)
Date: 12/23/99

At 5:54 PM +0200 1999-12-23, <zeev <email protected>> wrote:
>On Thu, 23 Dec 1999, Thies C. Arntzen wrote:
>
>> On Thu, 23 Dec 1999 zeev <email protected> wrote:
>>
>> > On Thu, 23 Dec 1999, Thies C. Arntzen wrote:
>> >
>> > > remember - global variables are usually zeroed when the program loads:
>> > >
>> > > #include <stdio.h>
>> > > int not_reported;
>> > > main()
>> > > {
>> > > int reported;
>> > > printf("%d\n",not_reported);
>> > > printf("%d\n",reported);
>> > > }
>> > >
>> > > purify will not report not_reported 'cause the crt *will*
>>initialize it to
>> > > zero!
>> >
>> > I think it's a purify bug then.
>>
>> sorry, you're wrong:
>>
>> bss section
>> -----------
>>
>> This section contains zeroed bytes when your program begins running. It is
>> used to hold unitialized variables or common storage. The length of each
>> partial program's bss section is important, but because it starts out
>> containing zeroed bytes there is no need to store explicit zero bytes in
>> the object file. The bss section was invented to eliminate those explicit
>> zeros from object files.
>
>This is specific to Solaris, I think. AFAIK, the C standard doesn't say
>that globals are zerod if not explicitly initialized (the C++ standard
>says that about static member variables, but that's about it).

Doesn't bss go back to (at least) the very earliest UNIX that ran on a
PDP-8 or whatever it was?

I don't have my K&R at hand, but I believe it's guaranteed in C that
globals are initialized to zero.

-- 
Paul DuBois, paul <email protected>

-- PHP 4.0 Beta Mailing List <http://www.php.net/version4/> To unsubscribe, e-mail: php4beta-unsubscribe <email protected> For additional commands, e-mail: php4beta-help <email protected> To contact the list administrators, e-mail: php4beta-admin <email protected>