Aaaaa988

11

Dec 24th, 2020
71
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <fcntl.h>
  4. #include <sys/mman.h>
  5. #include <sys/stat.h>
  6. #include <time.h>
  7. #include <unistd.h>
  8. #define FILE_LENGTH 0x100
  9. /* Возвратить случайное число из диапазона [low, high]. */
  10. int random_range (unsigned const low, unsigned const high)
  11. {
  12. unsigned const range = high - low + 1;
  13. return low + (int) (((double) range) * rand () / (RAND_MAX + 1.0));
  14. }
  15. int main (int argc, char* const argv[])
  16. {
  17. int fd;
  18. void* file_memory;
  19. /* Инициализируем генератор случайных чисел. */
  20. srand (time (NULL));
  21.  
  22. /* Открываем(создаем) файл, достаточно большой, чтобы хранить целое число без знака. */
  23. fd = open (argv[1], O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
  24. lseek (fd, FILE_LENGTH+1, SEEK_SET);
  25. write (fd, "", 1);
  26. lseek (fd, 0, SEEK_SET);
  27.  
  28. /* Создаем отображение в памяти. */
  29. file_memory = mmap (0, FILE_LENGTH, PROT_WRITE, MAP_SHARED, fd, 0);
  30. close (fd);
  31.  
  32. /* Пишем случайное целое число в отображенную память. */
  33. sprintf((char*) file_memory, "%d\n", random_range (-100, 100));
  34.  
  35. /* Освобождаем память. */
  36. munmap (file_memory, FILE_LENGTH);
  37.  
  38. return 0;
  39. }
RAW Paste Data