Advertisement
Guest User

Untitled

a guest
Aug 11th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.24 KB | None | 0 0
  1. int main(int argc, char *argv[], char *environ[]) {
  2.     int rv;
  3.     size_t mem_used = 0, mem_rollback;
  4.  
  5.     g_memory.used = 0; g_memory.max = MB(10);
  6.     unsigned int shmid_ = shmget(IPC_PRIVATE, g_memory.max, IPC_CREAT | 0777);
  7.     g_memory.base = shmat(shmid_, 0, 0);
  8.     g_memory.name = "main_memory";
  9.  
  10.     struct buffer print_buffer = buffer_child(&g_memory, KB(512), "print_main");
  11.  
  12.     {
  13.         u64 start = print_buffer.used;
  14.         buffer_copy_string(&print_buffer, "READY FOR LIFTOFF!\n");
  15.         cvt_int_to_string(&print_buffer, 100);
  16.         buffer_copy_string(&print_buffer, "\n");
  17.         write(0, print_buffer.base + start, (print_buffer.used - start));
  18.     }
  19.  
  20. #if 1
  21.     char *xauthority_path = "/home/ian/.Xauthority";
  22. #else
  23.     char *xauthority_path = NULL;
  24.     for (int i = 0; environ[i]; ++i) {
  25.         if (strcmp("XAUTHORITY", environ[i])) {
  26.             int len = strlen(environ[i] + 11);
  27.             xauthority_path = (char *)g_memory.base + g_memory.used;
  28.             for (int j = 0; j < len; ++j)
  29.                 xauthority_path[j] = environ[i][11 + j];
  30.             xauthority_path[len] = '\0';
  31.             g_memory.used = len + 1;
  32.             my_assert(g_memory.used < g_memory.max);
  33.         }
  34.     }
  35. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement