🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.os.msdos.programmer
Article #4870

Bug in TC findfirst()/findnext()!

#4870
From: John Gordon
Date: Mon, 25 Feb 1991 19:28
44 lines
1571 bytes
	I submit the following program:

----------
#include <stdio.h>
#include <string.h>
#include <dir.h>
#include <dos.h>
#include <io.h>

main()
{
  struct ffblk fileinfo;
  char path[256];

  getcwd(path, 250);

  strcat(path, "\\*.*");

  if(findfirst(path, &fileinfo, FA_DIREC) != 0) /* scan for subdirs */
  {
    printf("No sub-directories!\n");
    exit(2);
  }

  printf("%s\n", fileinfo.ff_name);

  while(findnext(&fileinfo) == 0) /* continue scanning for subdirs */
    printf("%s\n", fileinfo.ff_name);

}
---------

	According to the _Turbo_C_Bible_, calls to findfirst() and findnext()
are supposed to return filenames that match *both* the given path *and* the
given attribute.  However, the above program, which clearly specifies the
*directory* attribute (FA_DIREC), finds both directories *and* plain files.
Anyone have any comments/fixes/etc?


---
John Gordon
Internet: gordon@osiris.cso.uiuc.edu        #include <disclaimer.h>
          gordon@cerl.cecer.army.mil       #include <clever_saying.h>
Technical Details
Message-ID: <1991Feb25.192823.18224@ux1.cso.uiuc.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!maverick.ksu.ksu.edu!ux1.cso.uiuc.edu!osiris.cso.uiuc.edu!gordon

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!maverick.ksu.ksu.edu!ux1.cso.uiuc.edu!osiris.cso.uiuc.edu!gordon
From: gordon@osiris.cso.uiuc.edu (John Gordon)
Newsgroups: comp.os.msdos.programmer
Subject: Bug in TC findfirst()/findnext()!
Summary: Bug!
Keywords: tc,bug,find,findfirst,findnext
Message-ID: <1991Feb25.192823.18224@ux1.cso.uiuc.edu>
Date: 25 Feb 91 19:28:23 GMT
Sender: usenet@ux1.cso.uiuc.edu (News)
Organization: University of Illinois at Urbana
Lines: 44