delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2004/08/02/23:44:12

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
To: cygwin AT cygwin DOT com
Cc: prj AT po DOT cwru DOT edu (Paul Jarc)
Subject: link() bug
From: Jim Pritts <jpritts AT sdf DOT lonestar DOT org>
Date: Mon, 02 Aug 2004 23:44:13 -0400
Message-ID: <80vfg0ubqq.fsf@sdf.lonestar.org>
User-Agent: Gnus/5.1006 (Gnus v5.10.6) XEmacs/21.4 (Security Through Obscurity, cygwin32)
MIME-Version: 1.0
X-IsSubscribed: yes

I created a program that demonstrates a bug with link() in Cygwin.
The program first creates a file named "dummy" and then creates 1050
hard links to file "dummy" by calling link().  link() reports no error
for all 1050 calls.  However when an "ls -la dummy" is performed, only
1024 hard links to dummy are reported.  In addition, if an ls -la is
performed on any hard link greater than 1023, then the report is that
there is only one hard link to the underlying inode.  If link() cannot
perform the hard link properly, then it should report an error which
it does not. Source and makefile are included to demonstrate the bug.

source:

#include <unistd.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>

extern int errno;

int main() 
{
  FILE* f = fopen("dummy", "w");
  fclose(f);
  char buff[1000];
  for (int i=0; i < 1050; ++i) {
    sprintf(buff, "%d", i);
    int err = link("dummy", buff);
    switch(err) {
    case 0:
      printf("no error: %d\n", i);
      break;
    case -1:
      printf("error: %s\n", strerror(errno));
      break;
    }
  }
}

makefile:

test: main.cc 
	g++ -o test main.cc


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019