newbie: _findfirst bug or is it me?

Nick Sieger Nick@mpen.com
Sat Jul 31 18:34:00 GMT 1999


>>>>> "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



More information about the Cygwin mailing list