mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	* stdio-common/tst-cookie.c (cookieseek): Change prototype to follow change for libio.h from 2000-03-10. 2000-03-23 Andreas Jaeger <aj@suse.de>
		
			
				
	
	
		
			93 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <sys/types.h>
 | |
| #include <sys/stat.h>
 | |
| #include <fcntl.h>
 | |
| #include <errno.h>
 | |
| 
 | |
| #include <stdio.h>
 | |
| 
 | |
| 
 | |
| #define THE_COOKIE ((void *) 0xdeadbeeful)
 | |
| 
 | |
| static int errors;
 | |
| 
 | |
| 
 | |
| static int cookieread_called;
 | |
| static ssize_t
 | |
| cookieread (void *cookie, char *buf, size_t count)
 | |
| {
 | |
|   printf ("`%s' called with cookie %#lx\n", __FUNCTION__,
 | |
| 	  (unsigned long int) cookie);
 | |
|   if (cookie != THE_COOKIE)
 | |
|     ++errors;
 | |
|   cookieread_called = 1;
 | |
|   return 42;
 | |
| }
 | |
| 
 | |
| 
 | |
| static int cookiewrite_called;
 | |
| static ssize_t
 | |
| cookiewrite (void *cookie, const char *buf, size_t count)
 | |
| {
 | |
|   printf ("`%s' called with cookie %#lx\n", __FUNCTION__,
 | |
| 	  (unsigned long int) cookie);
 | |
|   if (cookie != THE_COOKIE)
 | |
|     ++errors;
 | |
|   cookiewrite_called = 1;
 | |
|   return 43;
 | |
| }
 | |
| 
 | |
| 
 | |
| static int cookieseek_called;
 | |
| static int
 | |
| cookieseek (void *cookie, off64_t *offset, int whence)
 | |
| {
 | |
|   printf ("`%s' called with cookie %#lx\n", __FUNCTION__,
 | |
| 	  (unsigned long int) cookie);
 | |
|   if (cookie != THE_COOKIE)
 | |
|     ++errors;
 | |
|   cookieseek_called = 1;
 | |
|   return 44;
 | |
| }
 | |
| 
 | |
| 
 | |
| static int cookieclose_called;
 | |
| static int
 | |
| cookieclose (void *cookie)
 | |
| {
 | |
|   printf ("`%s' called with cookie %#lx\n", __FUNCTION__,
 | |
| 	  (unsigned long int) cookie);
 | |
|   if (cookie != THE_COOKIE)
 | |
|     ++errors;
 | |
|   cookieclose_called = 1;
 | |
|   return 45;
 | |
| }
 | |
| 
 | |
| 
 | |
| int
 | |
| main (void)
 | |
| {
 | |
|   cookie_io_functions_t fcts;
 | |
|   char buf[1];
 | |
|   FILE *f;
 | |
| 
 | |
|   fcts.read = cookieread;
 | |
|   fcts.seek = cookieseek;
 | |
|   fcts.close = cookieclose;
 | |
|   fcts.write = cookiewrite;
 | |
| 
 | |
|   f = fopencookie (THE_COOKIE, "r+", fcts);
 | |
| 
 | |
|   fread (buf, 1, 1, f);
 | |
|   fwrite (buf, 1, 1, f);
 | |
|   fseek (f, 0, SEEK_CUR);
 | |
|   fclose (f);
 | |
| 
 | |
|   if (cookieread_called == 0
 | |
|       || cookiewrite_called == 0
 | |
|       || cookieseek_called == 0
 | |
|       || cookieclose_called == 0)
 | |
|     ++errors;
 | |
| 
 | |
|   return errors != 0;
 | |
| }
 |