Message-ID: <34F3CBC1.7066@post.comstar.ru> Date: Wed, 25 Feb 1998 10:44:01 +0300 From: Dim Zegebart Reply-To: zager AT post DOT comstar DOT ru Organization: Comstar Ltd. MIME-Version: 1.0 To: DJGPP Mail List Subject: Funny thing with _fixpath Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Precedence: bulk Hi, I just found a very interesting feature of _fixpath, look : void foo(void) { load_setting("my_ini.ini"); } int load_settings(char *ini_name) { char fixed_name=(char*)malloc(strlen(ini_name)+1); //suppose strlen("my_ini.ini")==10, malloc allocate 11 byte in data segement _fixedpath(ini_name,fixed_name); // What do you thinking about contents of fixed_name now ? Yes, I also think it's just 'my_ini.ini' // But the real contents after _fixedpath is : 'c:/djgpp/contrib/mywork/my_ini.ini' exactly where from I running my exe file ! // As you can see the strlen(fixed_name) is something about 1,2,..., 34 ! A bit greater then initial 11 ;) // So, you may imagine how often I saw a GPF and SIGSEGV screens. //(BTW, under plain DOS and CWSDPMI I can't trace this code with RHIDE, only under NT) } Perhaps, this is a special feature of _fixedpath (perhaps, usefull for somebody) ... But, how I should allocate space for fixed_name exept declaring it as 'char fixed_name[MAXDIR]' ? Thank you. -- ____ ____ | \ / Dim Zegebart ____/____ Moscow Russia WWW - http://www.geocities.com/siliconvalley/pines/7817 DZcomm - comm library for Allegro Palantir - multytasking kernel for Allegro (based on PDMLWP)