mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <stdio.h>
 | |
| #include <stdio_ext.h>
 | |
| 
 | |
| 
 | |
| static char *fname;
 | |
| 
 | |
| #define PREPARE(argc, argv) \
 | |
|   do {									\
 | |
|     int fd = create_temp_file ("tst-ext2", &fname);			\
 | |
|     if (fd == -1)							\
 | |
|       {									\
 | |
| 	puts ("cannot create temporary file");				\
 | |
| 	exit (1);							\
 | |
|       }									\
 | |
|     close (fd);								\
 | |
|   } while (0)
 | |
| 
 | |
| 
 | |
| static int
 | |
| do_test (void)
 | |
| {
 | |
|   int res = 0;
 | |
| 
 | |
|   FILE *fp;
 | |
| 
 | |
|   fp = fopen (fname, "w");
 | |
|   printf ("Initial state for write-only stream: %d %d\n",
 | |
|           __freading (fp) != 0, __fwriting (fp) != 0);
 | |
|   res |= ((__freading (fp) != 0) != 0
 | |
| 	  || (__fwriting (fp) != 0) != 1);
 | |
|   fclose (fp);
 | |
| 
 | |
|   fp = fopen (fname, "r");
 | |
|   printf ("Initial state for read-only stream:  %d %d\n",
 | |
|           __freading (fp) != 0, __fwriting (fp) != 0);
 | |
|   res |= ((__freading (fp) != 0) != 1
 | |
| 	  || (__fwriting (fp) != 0) != 0);
 | |
|   fclose (fp);
 | |
| 
 | |
|   fp = fopen (fname, "r+");
 | |
|   printf ("Initial state for read-write stream: %d %d\n",
 | |
|           __freading (fp) != 0, __fwriting (fp) != 0);
 | |
|   res |= ((__freading (fp) != 0) != 0
 | |
| 	  || (__fwriting (fp) != 0) != 0);
 | |
|   fclose (fp);
 | |
| 
 | |
|   fp = fopen (fname, "w+");
 | |
|   printf ("Initial state for read-write stream: %d %d\n",
 | |
|           __freading (fp) != 0, __fwriting (fp) != 0);
 | |
|   res |= ((__freading (fp) != 0) != 0
 | |
| 	  || (__fwriting (fp) != 0) != 0);
 | |
|   fclose (fp);
 | |
| 
 | |
|   return res;
 | |
| }
 | |
| 
 | |
| #define TEST_FUNCTION do_test ()
 | |
| #include "../test-skeleton.c"
 |