Advertisement
zcutlip

ioctl_test

Jan 11th, 2014
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.27 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <unistd.h>
  4. #include <fcntl.h>
  5. #include <string.h>
  6. #include <sys/types.h>
  7. #include <sys/stat.h>
  8.  
  9. /*
  10.  * Find out what we get back when we request
  11.  * ioctl 0x40204d01 on /dev/mtd1
  12.  */
  13.  
  14. int main(void)
  15. {
  16.     int data[12];
  17.     int request=0x40204D01;
  18.     int fd;
  19.     int oflag=2;
  20.     int ret;
  21.     int i;
  22.    
  23.     memset(data,'A',sizeof(data));
  24.    
  25.     printf("Opening /dev/mtd1.\n");
  26.     fd=open("/dev/mtd1",oflag);
  27.     if(0>fd)
  28.     {
  29.         perror("open");
  30.         exit(1);
  31.     }
  32.    
  33.     printf("requesting ioctl. %#010x\n",request);
  34.     ret=ioctl(fd,request,data);
  35.    
  36.     if(0!=ret)
  37.     {
  38.         perror("ioctl");
  39.         close(fd);
  40.         exit(1);
  41.     }
  42.    
  43.     close(fd);
  44.    
  45.     printf("data ints:\n");
  46.        
  47.     for(i=0;i<sizeof(data)/sizeof(int);i++)
  48.     {
  49.         printf("%#010x\n",data[i]);
  50.     }
  51.    
  52.     printf("Opening outfile /tmp/data.bin\n");
  53.    
  54.     fd=open("/tmp/data.bin",O_CREAT|O_WRONLY);
  55.     if(0>fd)
  56.     {
  57.         perror("open");
  58.         exit(1);
  59.     }
  60.    
  61.     printf("Writing ioctl data to outfile.\n");
  62.     if(0>write(fd,data,sizeof(data)))
  63.     {
  64.         perror("write");
  65.         close(fd);
  66.         exit(1);
  67.     }
  68.    
  69.     close(fd);
  70.     exit(0);
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement