title: Access the RAW disk using C/C++
body: <p>I have a large storage device (flash memory) plugged onto my computer via the PCIe bus, I want to access such device directly, i.e., without any file system (e.g., NTFS or ext4) on it. </p>
  
  <p>How can I do this using C/C++? (on both Windows 7 and Linux)
  I am wondering if I can 1) open the device just as a file, and then read and write binary data to it, or 2) allocate the whole device using some function like <code>malloc</code>, then each byte on the device have an address so that I can access them based on the addresses. </p>
  
  <p>I prefer the second way if it possible, but I don't know if the OS supports this since it seems the address space needs to be shared with the main memory.</p>