title: C program to read data from USB device connected to the system
body: <p>I am trying to fetch data from the USB device (say pendrive) connected to the USB port of a system. Here, I am able to open the device file and read some random raw data. But I want  to fetch data like minicom/teraterm.</p>
  
  <p>Please let me know what methods and libraries I can use to do it successfully and how can it be done.</p>
  
  <pre><code>#include &lt;stdio.h&gt; 
  #include &lt;stdio.h&gt;   
  #include &lt;string.h&gt;  
  #include &lt;unistd.h&gt;  
  #include &lt;fcntl.h&gt;   
  #include &lt;errno.h&gt;   
  #include &lt;termios.h&gt; 
  #include &lt;signal.h&gt;
  #include &lt;sys/time.h&gt;
  
  int main()
  {
      short portfd=-1;
      int n,f,len;
      char buf[256],*s;
      alarm(2);
  #if defined(O_NDELAY) &amp;&amp; defined(F_SETFL)
      portfd = open("/dev/ttyUSB0", O_RDWR|O_NDELAY);
      if (portfd &gt;= 0){
          /* Cancel the O_NDELAY flag. */
          printf("port openend\n");
          n = fcntl(portfd, F_GETFL, 0);
          (void) fcntl(portfd, F_SETFL, n &amp; ~O_NDELAY);
      }
  #else
      portfd = open("/dev/ttyUSB0", O_RDWR);
  #endif
      if (portfd &gt;= 0) 
      {
          if (len == 0) len = strlen(s);
          for(f = 0; f &lt; len &amp;&amp; f &lt;100; f++)
              buf[f] = *s++ | 0x80;
          write(portfd, buf, f);
          printf("Do write\n");
          while(portfd&gt;=0){
              printf("%s\n",buf);
          }
      }
  
      alarm(0);
      signal(SIGALRM, SIG_IGN);
      if (portfd &lt; 0) {
          printf("cannot open %s. Sorry.\n", "/dev/ttyUSB0");
      }
  }
  </code></pre>
  
  <p>Log of the output:</p>
  
  <pre><code>���������鉀�������������������鍀���������������������������������������������������������������2
  ����������鉀�������������������鍀���������������������������������������������������������������2
  </code></pre>