This is the mail archive of the cygwin 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]
Other format: [Raw text]

Re: link() bug


On Aug  2 23:44, Jim Pritts wrote:
> 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;
>     }
>   }
> }

WFM. 

You missed to tell us about your system.  http://cygwin.com/problems.html

Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Co-Project Leader          mailto:cygwin@cygwin.com
Red Hat, Inc.

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


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