This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: newbie: _findfirst bug or is it me?



>>>>> "Marco" == Craveiro, Marco <Marco.Craveiro@solvay.com> writes:

Marco> #include <dir.h>
Marco> #include <iostream.h>

Marco> void main()
Marco> {
Marco>    int iHandle;
Marco>    int iResult;

Marco>    struct _finddata_t * find;
	struct _finddata_t find;
 
Marco>    iResult = _chdir ("c:\\");  
Marco>    iHandle = _findfirst ("*.txt", find); 
	iHandle = _findfirst ("*.txt", & find);

Marco>    if ((iHandle == -1)) 
Marco>       cout << "no files found.";
Marco>    else
Marco>    {      
Marco>       cout << find->name << "\n";
	cout << find.name << "\n";
Marco>       while (!(iResult == -1))
Marco>       {
Marco>          iResult = _findnext (iHandle, find);
	iResult = _findnext (iHandle, &find);
Marco>          cout << find->name << "\n";
	cout << find.name << "\n";
Marco>       }
Marco>       _findclose (iHandle);
Marco>    }
Marco> }

Marco> it produces an ilegal operation if i run it. (crashes in the _findfirst). do
Marco> i need to do something different to use <dir.h>?? can anybody tell me what
Marco> am i doing wrong?

_findfirst() expects that the pointer argument actually points to a
valid structure.  You just passed a pointer that points nowhere.
Maybe you thought that it would allocate memory for you, when in fact
it does not.  That is usually the convention with those type of
functions where a pointer to structure argument is taken.

Hope it helps.
nick

-- 
-- Nick Sieger -- MPen Inc. -- mailto: nick@mpen.com -- http://www.mpen.com
	-- Tel: 212-807-9608 x6464 -- Fax: 212-675-6121 --


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]