title: GUID/UUID compatibility issue between .NET and Linux
body: <p>In my c++ program, I am generating a uuid value using debian linux's uuid package, it's returning me an unsigned char array of size 16, which is of type uuid_t. Then I convert it to string and print it to the console. </p>
  
  <p>Then I take the same byte array and send it to a windows machine over the network. Windows machine uses .net's GUID type, and creates a GUID object using the same byte array. Then I use ToString method of the GUID to print it to the console again. Surprisingly same byte array has different string representations under Linux and .Net, even though they are almost similar.</p>
  
  <p>Here's an example:</p>
  
  <p>Byte array:</p>
  
  <p>101,208,176,173,236,192,64,86,191,214,132,2,213,232,143,247</p>
  
  <p>Linux:
  65d0b0ad-ecc0-4056-bfd6-8402d5e88ff7</p>
  
  <p>.NET:
  adb0d065-c0ec-5640-bfd6-8402d5e88ff7</p>
  
  <p>As you might notice they are quite similar, last parts are the same, first parts are using the same digits, only the order of the digits are different. Every UUID that I create the way I explained above, follows the same pattern which makes me think that there's a byte order difference. </p>
  
  <p>How can I create a UUID value in linux and have the same string representation using the same byte array.</p>