fork download
  1. ##include <iostream>
  2. #include <unistd.h>
  3. #include <sys/wait.h>
  4. #include <limits.h>
  5. #include <dirent.h>
  6. #include <sstream>
  7. #include <cstring>
  8. #include <vector>
  9. #include <boost/bind.hpp>
  10.  
  11. using namespace std;
  12.  
  13. #define PATH_MAX 4096
  14.  
  15. char *curr_dir = (char *) "/usr/bin";
  16. /*
  17. string comm;
  18. string argum;
  19. int splitting(string l) {
  20.   string arr[3];
  21.   int i = 0;
  22.   stringstream ssin(l);
  23.   while (ssin.good() && i < 3) {
  24.   ssin >> arr[i];
  25.   ++i;
  26.   if(i == 3){
  27.   printf("ERROR : TU DAUN! TAK NE MOZNA PYSATY.");
  28.   return -1;
  29.   }
  30.   }
  31.   comm = arr[0];
  32.   argum = arr[1];
  33.   cout << comm << endl;
  34.   cout << argum;
  35.   return 0;
  36. }*/
  37. vector<char*> vectorOfPath;
  38. string command;
  39. string args;
  40. void splitString( string line){
  41. int i = 0;
  42. while(i != sizeof(line)){
  43. if(line[i] == ' '){
  44. command = line.substr(0,i);
  45. args = line.substr(i+1, sizeof(line));
  46. break;
  47. }else{
  48. command = line;
  49. }
  50. i++;
  51. }}
  52.  
  53. int cd(char** argv){
  54. if (argv[1] == NULL)
  55. {
  56. chdir ("/");
  57. curr_dir = get_current_dir_name();
  58. }
  59. else{
  60.  
  61. vectorOfPath.push_back(argv[1]);
  62. chdir (argv[1]);
  63. //cout<<get_current_dir_name();
  64. curr_dir = get_current_dir_name();
  65. }
  66. return 0;
  67.  
  68. }
  69.  
  70. int myLs(){
  71. DIR *dp = NULL;
  72. struct dirent *dptr = NULL;
  73. unsigned int count = 0;
  74. dp = opendir((const char*)curr_dir);
  75. if(NULL == dp)
  76. {
  77. printf("\n ERROR : Could not open the working directory\n");
  78. return -1;
  79. }
  80.  
  81. for(count = 0; NULL != (dptr = readdir(dp)); count++)
  82. {
  83. // Check if the name of the file/folder begins with '.'
  84. // If yes, then do not display it.
  85. if(dptr->d_name[0] != '.')
  86. printf("%s ",dptr->d_name);
  87. }
  88.  
  89. return 0;
  90. }
  91.  
  92. int myRm(char** argv){
  93. if( remove(argv[1]) != 0 )
  94. perror( "Error deleting file" );
  95. else
  96. puts("File successfully deleted");
  97.  
  98. }
  99.  
  100.  
  101. int doLS(char* prog, char** argv){
  102. if (!strcmp (prog, " ") & (argv[1] == NULL))
  103. {
  104. myLs();
  105.  
  106. }
  107. else
  108. {
  109. pid_t kidpid = fork();
  110.  
  111. if (kidpid < 0)
  112. {
  113. perror( "Internal error: cannot fork." );
  114. return -1;
  115. }
  116. else if (kidpid == 0)
  117. {
  118. // I am the child.
  119. //cout << "BLA BLA BLA ZNOW HUYNIA" << endl << prog << endl;
  120. char *cmd = (char *) myLs();
  121. // abo mozna she tak v'ibaty:
  122. //execvp (*cmd, argv);
  123.  
  124. execvp (prog, argv);
  125.  
  126. // The following lines should not happen (normally).
  127. //perror( command );
  128. return -1;
  129. }
  130. else
  131. {
  132. // I am the parent. Wait for the child.
  133. if ( waitpid( kidpid, 0, 0 ) < 0 )
  134. {
  135. perror( "Internal error: cannot wait for child." );
  136. return -1;
  137. }
  138. }
  139. }
  140.  
  141.  
  142. return 0;
  143.  
  144. }
  145.  
  146. int doRM(char* prog, char** argv){
  147. if (!strcmp (prog, " ") & (argv[1] !=NULL))
  148. {
  149. myRm((char **) argv[1]);
  150.  
  151. }
  152. else
  153. {
  154. pid_t kidpid = fork();
  155.  
  156. if (kidpid < 0)
  157. {
  158. perror( "Internal error: cannot fork." );
  159. return -1;
  160. }
  161. else if (kidpid == 0)
  162. {
  163. // I am the child.
  164. //cout << "BLA BLA BLA ZNOW HUYNIA" << endl << prog << endl;
  165. char *cmd = (char *) myRm(argv);
  166. // abo mozna she tak v'ibaty:
  167. //execvp (*cmd, argv);
  168.  
  169. execvp (prog, argv);
  170.  
  171. // The following lines should not happen (normally).
  172. //perror( command );
  173. return -1;
  174. }
  175. else
  176. {
  177. // I am the parent. Wait for the child.
  178. if ( waitpid( kidpid, 0, 0 ) < 0 )
  179. {
  180. perror( "Internal error: cannot wait for child." );
  181. return -1;
  182. }
  183. }
  184. }
  185.  
  186.  
  187. return 0;
  188.  
  189. }
  190.  
  191.  
  192.  
  193. int main(int argc, char* argv[], char**env)
  194. {
  195. /*
  196.   pid_t pid = fork();
  197.   if (pid == -1)
  198.   {
  199.   cout << "ERROR" << &endl;
  200.   }
  201.   else if (pid > 0)
  202.   {
  203.   int status;
  204.   waitpid(pid, &status, 0);
  205.   }
  206.   else {
  207.   char cwd[1024];
  208.   getcwd(cwd, sizeof(cwd));
  209.   //printf( "%s\n", cwd);
  210.   execve("/bin/ls", argv, env);
  211.   _exit(EXIT_FAILURE);
  212.   }*/
  213.  
  214. while(true) {
  215. //string command;
  216. // char commandChar[1024]; // Will store the command entered by user in character array
  217. // char *argVector[10]; // Will store the arguments after they are tokenized
  218. //int argCount; // Will store the number of arguments
  219.  
  220. //char cwd[1024];
  221. //getcwd(cwd, sizeof(cwd));
  222. //printf( "%s$\n", cwd);
  223.  
  224. cout << curr_dir << "$";
  225. char command[128];
  226. cin.getline( command, 128 );
  227.  
  228. vector<char*> args;
  229. char* prog = strtok( command, " " );
  230. char* tmp = prog;
  231. while ( tmp != NULL )
  232. {
  233. args.push_back( tmp );
  234. tmp = strtok( NULL, " " );
  235. }
  236.  
  237. char** argv = args.data();
  238.  
  239. argv[args.size()] = NULL;
  240.  
  241.  
  242. if ((string(prog)=="pwd")){
  243.  
  244. cout << curr_dir;
  245. }
  246. else if ((string(prog)=="ls")){
  247. //cout << "asv" <<endl;
  248. doLS(prog, argv);
  249.  
  250. }
  251. else if((string(prog)=="cd")){
  252. cd(argv);
  253. //doLS(prog, argv);
  254. }
  255.  
  256. else if(string(prog) == "mrm"){
  257. doRM(prog, argv);
  258. }
  259.  
  260. else if((string(prog)=="exit")){
  261. break;
  262. }
  263.  
  264. cout << "\n";
  265.  
  266.  
  267. //cout << input << endl;
  268.  
  269.  
  270.  
  271. /*
  272.   ptr = strtok(commandChar, " ");
  273.   argVector[argCount] = ptr;
  274.   argCount++;
  275.   while (ptr != NULL)
  276.   {
  277.   ptr = strtok(commandChar, " ");
  278.   cout << ptr << " " << argCount << "\n";
  279.   argVector[argCount] = ptr;
  280.   argCount++;
  281.   //execvp(argvec[0], argvec);
  282.   //fatal("exec failed");
  283.   }
  284. */
  285. }
  286.  
  287. return 0;
  288.  
  289. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:1:1: error: stray ‘##’ in program
 ##include <iostream>
 ^~
prog.cpp:1:3: error: ‘include’ does not name a type
 ##include <iostream>
   ^~~~~~~
In file included from /usr/include/signal.h:75:0,
                 from /usr/include/x86_64-linux-gnu/sys/wait.h:29,
                 from prog.cpp:3:
/usr/include/time.h:122:5: error: ‘__time_t’ does not name a type
     __time_t tv_sec;  /* Seconds.  */
     ^~~~~~~~
/usr/include/time.h:123:5: error: ‘__syscall_slong_t’ does not name a type
     __syscall_slong_t tv_nsec; /* Nanoseconds.  */
     ^~~~~~~~~~~~~~~~~
In file included from /usr/include/signal.h:80:0,
                 from /usr/include/x86_64-linux-gnu/sys/wait.h:29,
                 from prog.cpp:3:
/usr/include/x86_64-linux-gnu/bits/siginfo.h:58:9: error: ‘__clock_t’ does not name a type
 typedef __clock_t __sigchld_clock_t;
         ^~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/siginfo.h:76:6: error: ‘__pid_t’ does not name a type
      __pid_t si_pid; /* Sending process ID.  */
      ^~~~~~~
/usr/include/x86_64-linux-gnu/bits/siginfo.h:77:6: error: ‘__uid_t’ does not name a type
      __uid_t si_uid; /* Real user ID of sending process.  */
      ^~~~~~~
/usr/include/x86_64-linux-gnu/bits/siginfo.h:91:6: error: ‘__pid_t’ does not name a type
      __pid_t si_pid; /* Sending process ID.  */
      ^~~~~~~
/usr/include/x86_64-linux-gnu/bits/siginfo.h:92:6: error: ‘__uid_t’ does not name a type
      __uid_t si_uid; /* Real user ID of sending process.  */
      ^~~~~~~
/usr/include/x86_64-linux-gnu/bits/siginfo.h:99:6: error: ‘__pid_t’ does not name a type
      __pid_t si_pid; /* Which child.  */
      ^~~~~~~
/usr/include/x86_64-linux-gnu/bits/siginfo.h:100:6: error: ‘__uid_t’ does not name a type
      __uid_t si_uid; /* Real user ID of sending process.  */
      ^~~~~~~
/usr/include/x86_64-linux-gnu/bits/siginfo.h:102:6: error: ‘__sigchld_clock_t’ does not name a type
      __sigchld_clock_t si_utime;
      ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/siginfo.h:103:6: error: ‘__sigchld_clock_t’ does not name a type
      __sigchld_clock_t si_stime;
      ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/siginfo.h:332:2: error: ‘__pid_t’ does not name a type
  __pid_t _tid;
  ^~~~~~~
In file included from /usr/include/x86_64-linux-gnu/sys/wait.h:29:0,
                 from prog.cpp:3:
/usr/include/signal.h:127:18: error: ‘__pid_t’ was not declared in this scope
 extern int kill (__pid_t __pid, int __sig) __THROW;
                  ^~~~~~~
/usr/include/signal.h:127:33: error: expected primary-expression before ‘int’
 extern int kill (__pid_t __pid, int __sig) __THROW;
                                 ^~~
/usr/include/signal.h:127:42: error: expression list treated as compound expression in initializer [-fpermissive]
 extern int kill (__pid_t __pid, int __sig) __THROW;
                                          ^
/usr/include/signal.h:134:20: error: ‘__pid_t’ was not declared in this scope
 extern int killpg (__pid_t __pgrp, int __sig) __THROW;
                    ^~~~~~~
/usr/include/signal.h:134:36: error: expected primary-expression before ‘int’
 extern int killpg (__pid_t __pgrp, int __sig) __THROW;
                                    ^~~
/usr/include/signal.h:134:45: error: expression list treated as compound expression in initializer [-fpermissive]
 extern int killpg (__pid_t __pgrp, int __sig) __THROW;
                                             ^
In file included from /usr/include/x86_64-linux-gnu/sys/wait.h:29:0,
                 from prog.cpp:3:
/usr/include/signal.h:291:22: error: ‘__pid_t’ was not declared in this scope
 extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
                      ^~~~~~~
/usr/include/signal.h:291:37: error: expected primary-expression before ‘int’
 extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
                                     ^~~
/usr/include/signal.h:291:48: error: expected primary-expression before ‘const’
 extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
                                                ^~~~~
/usr/include/signal.h:291:72: error: expression list treated as compound expression in initializer [-fpermissive]
 extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
                                                                        ^
In file included from /usr/include/signal.h:306:0,
                 from /usr/include/x86_64-linux-gnu/sys/wait.h:29,
                 from prog.cpp:3:
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:31:3: error: ‘__uint32_t’ does not name a type
   __uint32_t magic1;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:32:3: error: ‘__uint32_t’ does not name a type
   __uint32_t extended_size;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:33:3: error: ‘__uint64_t’ does not name a type
   __uint64_t xstate_bv;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:34:3: error: ‘__uint32_t’ does not name a type
   __uint32_t xstate_size;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:35:3: error: ‘__uint32_t’ does not name a type
   __uint32_t padding[7];
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:53:3: error: ‘__uint32_t’ does not name a type
   __uint32_t element[4];
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:124:3: error: ‘__uint16_t’ does not name a type
   __uint16_t  cwd;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:125:3: error: ‘__uint16_t’ does not name a type
   __uint16_t  swd;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:126:3: error: ‘__uint16_t’ does not name a type
   __uint16_t  ftw;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:127:3: error: ‘__uint16_t’ does not name a type
   __uint16_t  fop;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:128:3: error: ‘__uint64_t’ does not name a type
   __uint64_t  rip;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:129:3: error: ‘__uint64_t’ does not name a type
   __uint64_t  rdp;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:130:3: error: ‘__uint32_t’ does not name a type
   __uint32_t  mxcsr;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:131:3: error: ‘__uint32_t’ does not name a type
   __uint32_t  mxcr_mask;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:134:3: error: ‘__uint32_t’ does not name a type
   __uint32_t  padding[24];
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:139:3: error: ‘__uint64_t’ does not name a type
   __uint64_t r8;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:140:3: error: ‘__uint64_t’ does not name a type
   __uint64_t r9;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:141:3: error: ‘__uint64_t’ does not name a type
   __uint64_t r10;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:142:3: error: ‘__uint64_t’ does not name a type
   __uint64_t r11;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:143:3: error: ‘__uint64_t’ does not name a type
   __uint64_t r12;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:144:3: error: ‘__uint64_t’ does not name a type
   __uint64_t r13;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:145:3: error: ‘__uint64_t’ does not name a type
   __uint64_t r14;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:146:3: error: ‘__uint64_t’ does not name a type
   __uint64_t r15;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:147:3: error: ‘__uint64_t’ does not name a type
   __uint64_t rdi;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:148:3: error: ‘__uint64_t’ does not name a type
   __uint64_t rsi;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:149:3: error: ‘__uint64_t’ does not name a type
   __uint64_t rbp;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:150:3: error: ‘__uint64_t’ does not name a type
   __uint64_t rbx;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:151:3: error: ‘__uint64_t’ does not name a type
   __uint64_t rdx;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:152:3: error: ‘__uint64_t’ does not name a type
   __uint64_t rax;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:153:3: error: ‘__uint64_t’ does not name a type
   __uint64_t rcx;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:154:3: error: ‘__uint64_t’ does not name a type
   __uint64_t rsp;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:155:3: error: ‘__uint64_t’ does not name a type
   __uint64_t rip;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:156:3: error: ‘__uint64_t’ does not name a type
   __uint64_t eflags;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:161:3: error: ‘__uint64_t’ does not name a type
   __uint64_t err;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:162:3: error: ‘__uint64_t’ does not name a type
   __uint64_t trapno;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:163:3: error: ‘__uint64_t’ does not name a type
   __uint64_t oldmask;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:164:3: error: ‘__uint64_t’ does not name a type
   __uint64_t cr2;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:168:7: error: ‘__uint64_t’ does not name a type
       __uint64_t __fpstate_word;
       ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:170:3: error: ‘__uint64_t’ does not name a type
   __uint64_t __reserved1 [8];
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:177:3: error: ‘__uint64_t’ does not name a type
   __uint64_t xstate_bv;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:178:3: error: ‘__uint64_t’ does not name a type
   __uint64_t reserved1[2];
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:179:3: error: ‘__uint64_t’ does not name a type
   __uint64_t reserved2[5];
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/sigcontext.h:184:3: error: ‘__uint32_t’ does not name a type
   __uint32_t ymmh_space[64];
   ^~~~~~~~~~
In file included from /usr/include/signal.h:323:0,
                 from /usr/include/x86_64-linux-gnu/sys/wait.h:29,
                 from prog.cpp:3:
/usr/include/x86_64-linux-gnu/bits/sigstack.h:53:5: error: ‘size_t’ does not name a type
     size_t ss_size;
     ^~~~~~
In file included from /usr/include/signal.h:326:0,
                 from /usr/include/x86_64-linux-gnu/sys/wait.h:29,
                 from prog.cpp:3:
/usr/include/x86_64-linux-gnu/sys/ucontext.h:101:3: error: ‘__uint32_t’ does not name a type
   __uint32_t element[4];
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/ucontext.h:107:3: error: ‘__uint16_t’ does not name a type
   __uint16_t  cwd;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/ucontext.h:108:3: error: ‘__uint16_t’ does not name a type
   __uint16_t  swd;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/ucontext.h:109:3: error: ‘__uint16_t’ does not name a type
   __uint16_t  ftw;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/ucontext.h:110:3: error: ‘__uint16_t’ does not name a type
   __uint16_t  fop;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/ucontext.h:111:3: error: ‘__uint64_t’ does not name a type
   __uint64_t  rip;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/ucontext.h:112:3: error: ‘__uint64_t’ does not name a type
   __uint64_t  rdp;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/ucontext.h:113:3: error: ‘__uint32_t’ does not name a type
   __uint32_t  mxcsr;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/ucontext.h:114:3: error: ‘__uint32_t’ does not name a type
   __uint32_t  mxcr_mask;
   ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/ucontext.h:117:3: error: ‘__uint32_t’ does not name a type
   __uint32_t  padding[24];
   ^~~~~~~~~~
In file included from prog.cpp:3:0:
/usr/include/x86_64-linux-gnu/sys/wait.h:63:8: error: ‘__pid_t’ does not name a type
 extern __pid_t wait (int *__stat_loc);
        ^~~~~~~
/usr/include/x86_64-linux-gnu/sys/wait.h:86:8: error: ‘__pid_t’ does not name a type
 extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options);
        ^~~~~~~
/usr/include/x86_64-linux-gnu/sys/wait.h:91:9: error: ‘__id_t’ does not name a type
 typedef __id_t id_t;
         ^~~~~~
In file included from prog.cpp:3:0:
/usr/include/x86_64-linux-gnu/sys/wait.h:109:39: error: ‘__id_t’ has not been declared
 extern int waitid (idtype_t __idtype, __id_t __id, siginfo_t *__infop,
                                       ^~~~~~
/usr/include/x86_64-linux-gnu/sys/wait.h:123:8: error: ‘__pid_t’ does not name a type
 extern __pid_t wait3 (int *__stat_loc, int __options,
        ^~~~~~~
/usr/include/x86_64-linux-gnu/sys/wait.h:129:8: error: ‘__pid_t’ does not name a type
 extern __pid_t wait4 (__pid_t __pid, int *__stat_loc, int __options,
        ^~~~~~~
In file included from prog.cpp:5:0:
/usr/include/dirent.h:34:9: error: ‘__ino_t’ does not name a type
 typedef __ino_t ino_t;
         ^~~~~~~
/usr/include/dirent.h:41:9: error: ‘__ino64_t’ does not name a type
 typedef __ino64_t ino64_t;
         ^~~~~~~~~
In file included from /usr/include/dirent.h:61:0,
                 from prog.cpp:5:
/usr/include/x86_64-linux-gnu/bits/dirent.h:25:5: error: ‘__ino_t’ does not name a type
     __ino_t d_ino;
     ^~~~~~~
/usr/include/x86_64-linux-gnu/bits/dirent.h:26:5: error: ‘__off_t’ does not name a type
     __off_t d_off;
     ^~~~~~~
/usr/include/x86_64-linux-gnu/bits/dirent.h:39:5: error: ‘__ino64_t’ does not name a type
     __ino64_t d_ino;
     ^~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/dirent.h:40:5: error: ‘__off64_t’ does not name a type
     __off64_t d_off;
     ^~~~~~~~~
In file included from prog.cpp:5:0:
/usr/include/dirent.h:353:8: error: ‘__ssize_t’ does not name a type
 extern __ssize_t getdirentries (int __fd, char *__restrict __buf,
        ^~~~~~~~~
/usr/include/dirent.h:370:8: error: ‘__ssize_t’ does not name a type
 extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf,
        ^~~~~~~~~
In file included from /usr/include/c++/6/cwchar:44:0,
                 from /usr/include/c++/6/bits/postypes.h:40,
                 from /usr/include/c++/6/iosfwd:40,
                 from /usr/include/c++/6/ios:38,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/wchar.h:153:38: error: ‘size_t’ has not been declared
     const wchar_t *__restrict __src, size_t __n)
                                      ^~~~~~
/usr/include/wchar.h:162:38: error: ‘size_t’ has not been declared
     const wchar_t *__restrict __src, size_t __n)
                                      ^~~~~~
/usr/include/wchar.h:169:63: error: ‘size_t’ has not been declared
 extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
                                                               ^~~~~~
/usr/include/wchar.h:179:4: error: ‘size_t’ has not been declared
    size_t __n) __THROW;
    ^~~~~~
In file included from /usr/include/c++/6/cwchar:44:0,
                 from /usr/include/c++/6/bits/postypes.h:40,
                 from /usr/include/c++/6/iosfwd:40,
                 from /usr/include/c++/6/ios:38,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/wchar.h:189:6: error: ‘size_t’ has not been declared
      size_t __n, __locale_t __loc) __THROW;
      ^~~~~~
/usr/include/wchar.h:199:8: error: ‘size_t’ does not name a type
 extern size_t wcsxfrm (wchar_t *__restrict __s1,
        ^~~~~~
/usr/include/wchar.h:215:8: error: ‘size_t’ does not name a type
 extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2,
        ^~~~~~
/usr/include/wchar.h:255:8: error: ‘size_t’ does not name a type
 extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject)
        ^~~~~~
/usr/include/wchar.h:259:8: error: ‘size_t’ does not name a type
 extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept)
        ^~~~~~
/usr/include/wchar.h:290:8: error: ‘size_t’ does not name a type
 extern size_t wcslen (const wchar_t *__s) __THROW __attribute_pure__;
        ^~~~~~
/usr/include/wchar.h:309:8: error: ‘size_t’ does not name a type
 extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen)
        ^~~~~~
/usr/include/wchar.h:317:59: error: ‘size_t’ has not been declared
 extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n)
                                                           ^~~~~~
/usr/include/wchar.h:320:10: error: ‘size_t’ has not been declared
          size_t __n)
          ^~~~~~
/usr/include/wchar.h:328:63: error: ‘size_t’ has not been declared
 extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
                                                               ^~~~~~
/usr/include/wchar.h:333:37: error: ‘size_t’ has not been declared
     const wchar_t *__restrict __s2, size_t __n) __THROW;
                                     ^~~~~~
/usr/include/wchar.h:337:63: error: ‘size_t’ has not been declared
 extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n)
                                                               ^~~~~~
/usr/include/wchar.h:341:53: error: ‘size_t’ has not been declared
 extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) __THROW;
                                                     ^~~~~~
/usr/include/wchar.h:348:38: error: ‘size_t’ has not been declared
      const wchar_t *__restrict __s2, size_t __n)
                                      ^~~~~~
/usr/include/wchar.h:368:8: error: ‘size_t’ does not name a type
 extern size_t mbrtowc (wchar_t *__restrict __pwc,
        ^~~~~~
/usr/include/wchar.h:373:8: error: ‘size_t’ does not name a type
 extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
        ^~~~~~
/usr/include/wchar.h:377:8: error: ‘size_t’ does not name a type
 extern size_t __mbrlen (const char *__restrict __s, size_t __n,
        ^~~~~~
/usr/include/wchar.h:379:8: error: ‘size_t’ does not name a type
 extern size_t mbrlen (const char *__restrict __s, size_t __n,
        ^~~~~~
/usr/include/wchar.h:401:17: error: ‘size_t’ does not name a type
 __extern_inline size_t
                 ^~~~~~
/usr/include/wchar.h:411:8: error: ‘size_t’ does not name a type
 extern size_t mbsrtowcs (wchar_t *__restrict __dst,
        ^~~~~~
/usr/include/wchar.h:417:8: error: ‘size_t’ does not name a type
 extern size_t wcsrtombs (char *__restrict __dst,
        ^~~~~~
/usr/include/wchar.h:426:8: error: ‘size_t’ does not name a type
 extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
        ^~~~~~
/usr/include/wchar.h:432:8: error: ‘size_t’ does not name a type
 extern size_t wcsnrtombs (char *__restrict __dst,
        ^~~~~~
/usr/include/wchar.h:446:42: error: ‘size_t’ has not been declared
 extern int wcswidth (const wchar_t *__s, size_t __n) __THROW;
                                          ^~~~~~
/usr/include/wchar.h:575:38: error: ‘size_t’ has not been declared
     const wchar_t *__restrict __src, size_t __n)
                                      ^~~~~~
/usr/include/wchar.h:583:53: error: ‘size_t’ has not been declared
 extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) __THROW;
                                                     ^~~~~~
/usr/include/wchar.h:607:47: error: ‘size_t’ has not been declared
 extern int swprintf (wchar_t *__restrict __s, size_t __n,
                                               ^~~~~~
/usr/include/wchar.h:628:48: error: ‘size_t’ has not been declared
 extern int vswprintf (wchar_t *__restrict __s, size_t __n,
                                                ^~~~~~
/usr/include/wchar.h:858:8: error: ‘size_t’ does not name a type
 extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
        ^~~~~~
/usr/include/wchar.h:868:8: error: ‘size_t’ does not name a type
 extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
        ^~~~~~
In file included from /usr/include/c++/6/bits/postypes.h:40:0,
                 from /usr/include/c++/6/iosfwd:40,
                 from /usr/include/c++/6/ios:38,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/c++/6/cwchar:151:11: error: ‘::mbrlen’ has not been declared
   using ::mbrlen;
           ^~~~~~
/usr/include/c++/6/cwchar:152:11: error: ‘::mbrtowc’ has not been declared
   using ::mbrtowc;
           ^~~~~~~
/usr/include/c++/6/cwchar:154:11: error: ‘::mbsrtowcs’ has not been declared
   using ::mbsrtowcs;
           ^~~~~~~~~
/usr/include/c++/6/cwchar:176:11: error: ‘::wcrtomb’ has not been declared
   using ::wcrtomb;
           ^~~~~~~
/usr/include/c++/6/cwchar:181:11: error: ‘::wcscspn’ has not been declared
   using ::wcscspn;
           ^~~~~~~
/usr/include/c++/6/cwchar:182:11: error: ‘::wcsftime’ has not been declared
   using ::wcsftime;
           ^~~~~~~~
/usr/include/c++/6/cwchar:183:11: error: ‘::wcslen’ has not been declared
   using ::wcslen;
           ^~~~~~
/usr/include/c++/6/cwchar:187:11: error: ‘::wcsrtombs’ has not been declared
   using ::wcsrtombs;
           ^~~~~~~~~
/usr/include/c++/6/cwchar:188:11: error: ‘::wcsspn’ has not been declared
   using ::wcsspn;
           ^~~~~~
/usr/include/c++/6/cwchar:196:11: error: ‘::wcsxfrm’ has not been declared
   using ::wcsxfrm;
           ^~~~~~~
In file included from /usr/include/c++/6/ios:40:0,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/c++/6/bits/char_traits.h: In static member function ‘static std::size_t std::char_traits<wchar_t>::length(const char_type*)’:
/usr/include/c++/6/bits/char_traits.h:358:26: error: ‘wcslen’ was not declared in this scope
       { return wcslen(__s); }
                          ^
In file included from /usr/include/c++/6/bits/char_traits.h:420:0,
                 from /usr/include/c++/6/ios:40,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/c++/6/cstdint: At global scope:
/usr/include/c++/6/cstdint:64:11: error: ‘::intptr_t’ has not been declared
   using ::intptr_t;
           ^~~~~~~~
In file included from /usr/include/endian.h:60:0,
                 from /usr/include/ctype.h:39,
                 from /usr/include/c++/6/cctype:42,
                 from /usr/include/c++/6/bits/localefwd.h:42,
                 from /usr/include/c++/6/ios:41,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:108:17: error: ‘__uint64_t’ does not name a type
 static __inline __uint64_t
                 ^~~~~~~~~~
In file included from /usr/include/c++/6/cctype:42:0,
                 from /usr/include/c++/6/bits/localefwd.h:42,
                 from /usr/include/c++/6/ios:41,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/ctype.h:81:14: error: ‘__int32_t’ does not name a type
 extern const __int32_t **__ctype_tolower_loc (void)
              ^~~~~~~~~
/usr/include/ctype.h:83:14: error: ‘__int32_t’ does not name a type
 extern const __int32_t **__ctype_toupper_loc (void)
              ^~~~~~~~~
In file included from /usr/include/sched.h:34:0,
                 from /usr/include/pthread.h:23,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr.h:148,
                 from /usr/include/c++/6/ext/atomicity.h:35,
                 from /usr/include/c++/6/bits/ios_base.h:39,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/time.h:75:9: error: ‘__time_t’ does not name a type
 typedef __time_t time_t;
         ^~~~~~~~
In file included from /usr/include/sched.h:43:0,
                 from /usr/include/pthread.h:23,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr.h:148,
                 from /usr/include/c++/6/ext/atomicity.h:35,
                 from /usr/include/c++/6/bits/ios_base.h:39,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/bits/sched.h:204:30: error: ‘size_t’ was not declared in this scope
 extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
                              ^~~~~~
/usr/include/x86_64-linux-gnu/bits/sched.h:204:30: note: suggested alternative:
In file included from /usr/include/c++/6/iosfwd:38:0,
                 from /usr/include/c++/6/ios:38,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:201:26: note:   ‘std::size_t’
   typedef __SIZE_TYPE__  size_t;
                          ^~~~~~
In file included from /usr/include/sched.h:43:0,
                 from /usr/include/pthread.h:23,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr.h:148,
                 from /usr/include/c++/6/ext/atomicity.h:35,
                 from /usr/include/c++/6/bits/ios_base.h:39,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/bits/sched.h:204:48: error: expected primary-expression before ‘const’
 extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
                                                ^~~~~
/usr/include/x86_64-linux-gnu/bits/sched.h:204:71: error: expression list treated as compound expression in initializer [-fpermissive]
 extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
                                                                       ^
/usr/include/x86_64-linux-gnu/bits/sched.h:206:37: error: ‘size_t’ was not declared in this scope
 extern cpu_set_t *__sched_cpualloc (size_t __count) __THROW __wur;
                                     ^~~~~~
/usr/include/x86_64-linux-gnu/bits/sched.h:206:37: note: suggested alternative:
In file included from /usr/include/c++/6/iosfwd:38:0,
                 from /usr/include/c++/6/ios:38,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:201:26: note:   ‘std::size_t’
   typedef __SIZE_TYPE__  size_t;
                          ^~~~~~
In file included from /usr/include/pthread.h:23:0,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr.h:148,
                 from /usr/include/c++/6/ext/atomicity.h:35,
                 from /usr/include/c++/6/bits/ios_base.h:39,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/sched.h:51:28: error: ‘__pid_t’ was not declared in this scope
 extern int sched_setparam (__pid_t __pid, const struct sched_param *__param)
                            ^~~~~~~
/usr/include/sched.h:51:43: error: expected primary-expression before ‘const’
 extern int sched_setparam (__pid_t __pid, const struct sched_param *__param)
                                           ^~~~~
/usr/include/sched.h:51:76: error: expression list treated as compound expression in initializer [-fpermissive]
 extern int sched_setparam (__pid_t __pid, const struct sched_param *__param)
                                                                            ^
/usr/include/sched.h:55:28: error: ‘__pid_t’ was not declared in this scope
 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __THROW;
                            ^~~~~~~
/usr/include/sched.h:55:43: error: expected primary-expression before ‘struct’
 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __THROW;
                                           ^~~~~~
/usr/include/sched.h:55:70: error: expression list treated as compound expression in initializer [-fpermissive]
 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __THROW;
                                                                      ^
/usr/include/sched.h:58:32: error: ‘__pid_t’ was not declared in this scope
 extern int sched_setscheduler (__pid_t __pid, int __policy,
                                ^~~~~~~
/usr/include/sched.h:58:47: error: expected primary-expression before ‘int’
 extern int sched_setscheduler (__pid_t __pid, int __policy,
                                               ^~~
/usr/include/sched.h:59:11: error: expected primary-expression before ‘const’
           const struct sched_param *__param) __THROW;
           ^~~~~
/usr/include/sched.h:59:44: error: expression list treated as compound expression in initializer [-fpermissive]
           const struct sched_param *__param) __THROW;
                                            ^
/usr/include/sched.h:62:32: error: ‘__pid_t’ was not declared in this scope
 extern int sched_getscheduler (__pid_t __pid) __THROW;
                                ^~~~~~~
/usr/include/sched.h:74:35: error: ‘__pid_t’ was not declared in this scope
 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
                                   ^~~~~~~
/usr/include/sched.h:74:50: error: expected primary-expression before ‘struct’
 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
                                                  ^~~~~~
/usr/include/sched.h:74:70: error: expression list treated as compound expression in initializer [-fpermissive]
 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
                                                                      ^
/usr/include/sched.h:118:31: error: ‘__pid_t’ was not declared in this scope
 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
                               ^~~~~~~
/usr/include/sched.h:118:46: error: ‘size_t’ was not declared in this scope
 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
                                              ^~~~~~
/usr/include/sched.h:118:46: note: suggested alternative:
In file included from /usr/include/c++/6/iosfwd:38:0,
                 from /usr/include/c++/6/ios:38,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:201:26: note:   ‘std::size_t’
   typedef __SIZE_TYPE__  size_t;
                          ^~~~~~
In file included from /usr/include/pthread.h:23:0,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr.h:148,
                 from /usr/include/c++/6/ext/atomicity.h:35,
                 from /usr/include/c++/6/bits/ios_base.h:39,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/sched.h:119:10: error: expected primary-expression before ‘const’
          const cpu_set_t *__cpuset) __THROW;
          ^~~~~
/usr/include/sched.h:119:35: error: expression list treated as compound expression in initializer [-fpermissive]
          const cpu_set_t *__cpuset) __THROW;
                                   ^
/usr/include/sched.h:122:31: error: ‘__pid_t’ was not declared in this scope
 extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
                               ^~~~~~~
/usr/include/sched.h:122:46: error: ‘size_t’ was not declared in this scope
 extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
                                              ^~~~~~
/usr/include/sched.h:122:46: note: suggested alternative:
In file included from /usr/include/c++/6/iosfwd:38:0,
                 from /usr/include/c++/6/ios:38,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:201:26: note:   ‘std::size_t’
   typedef __SIZE_TYPE__  size_t;
                          ^~~~~~
In file included from /usr/include/pthread.h:23:0,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr.h:148,
                 from /usr/include/c++/6/ext/atomicity.h:35,
                 from /usr/include/c++/6/bits/ios_base.h:39,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/sched.h:123:20: error: expected primary-expression before ‘*’ token
          cpu_set_t *__cpuset) __THROW;
                    ^
/usr/include/sched.h:123:21: error: ‘__cpuset’ was not declared in this scope
          cpu_set_t *__cpuset) __THROW;
                     ^~~~~~~~
/usr/include/sched.h:123:29: error: expression list treated as compound expression in initializer [-fpermissive]
          cpu_set_t *__cpuset) __THROW;
                             ^
In file included from /usr/include/time.h:41:0,
                 from /usr/include/pthread.h:24,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr.h:148,
                 from /usr/include/c++/6/ext/atomicity.h:35,
                 from /usr/include/c++/6/bits/ios_base.h:39,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/bits/time.h:32:5: error: ‘__time_t’ does not name a type
     __time_t tv_sec;  /* Seconds.  */
     ^~~~~~~~
/usr/include/x86_64-linux-gnu/bits/time.h:33:5: error: ‘__suseconds_t’ does not name a type
     __suseconds_t tv_usec; /* Microseconds.  */
     ^~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/bits/time.h:88:0,
                 from /usr/include/time.h:41,
                 from /usr/include/pthread.h:24,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr.h:148,
                 from /usr/include/c++/6/ext/atomicity.h:35,
                 from /usr/include/c++/6/bits/ios_base.h:39,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/bits/timex.h:28:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t offset; /* time offset (usec) */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:29:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t freq; /* frequency offset (scaled ppm) */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:30:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t maxerror; /* maximum error (usec) */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:31:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t esterror; /* estimated error (usec) */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:33:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t constant; /* pll time constant */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:34:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t precision; /* clock precision (usec) (ro) */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:35:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t tolerance; /* clock frequency tolerance (ppm) (ro) */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:37:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t tick; /* (modified) usecs between clock ticks */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:38:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t ppsfreq; /* pps frequency (scaled ppm) (ro) */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:39:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t jitter; /* pps jitter (us) (ro) */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:41:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t stabil; /* pps stability (scaled ppm) (ro) */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:42:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t jitcnt; /* jitter limit exceeded (ro) */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:43:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t calcnt; /* calibration intervals (ro) */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:44:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t errcnt; /* calibration errors (ro) */
   ^~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/timex.h:45:3: error: ‘__syscall_slong_t’ does not name a type
   __syscall_slong_t stbcnt; /* stability limit exceeded (ro) */
   ^~~~~~~~~~~~~~~~~
In file included from /usr/include/time.h:41:0,
                 from /usr/include/pthread.h:24,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr.h:148,
                 from /usr/include/c++/6/ext/atomicity.h:35,
                 from /usr/include/c++/6/bits/ios_base.h:39,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/bits/time.h:93:27: error: ‘__clockid_t’ was not declared in this scope
 extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW;
                           ^~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/time.h:93:51: error: expected primary-expression before ‘struct’
 extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW;
                                                   ^~~~~~
/usr/include/x86_64-linux-gnu/bits/time.h:93:70: error: expression list treated as compound expression in initializer [-fpermissive]
 extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW;
                                                                      ^
In file included from /usr/include/pthread.h:24:0,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr.h:148,
                 from /usr/include/c++/6/ext/atomicity.h:35,
                 from /usr/include/c++/6/bits/ios_base.h:39,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/time.h:59:9: error: ‘__clock_t’ does not name a type
 typedef __clock_t clock_t;
         ^~~~~~~~~
/usr/include/time.h:91:9: error: ‘__clockid_t’ does not name a type
 typedef __clockid_t clockid_t;
         ^~~~~~~~~~~
/usr/include/time.h:103:9: error: ‘__timer_t’ does not name a type
 typedef __timer_t timer_t;
         ^~~~~~~~~
/usr/include/time.h:189:8: error: ‘clock_t’ does not name a type
 extern clock_t clock (void) __THROW;
        ^~~~~~~
/usr/include/time.h:192:8: error: ‘time_t’ does not name a type
 extern time_t time (time_t *__timer) __THROW;
        ^~~~~~
/usr/include/time.h:195:25: error: ‘time_t’ was not declared in this scope
 extern double difftime (time_t __time1, time_t __time0)
                         ^~~~~~
/usr/include/time.h:195:41: error: ‘time_t’ was not declared in this scope
 extern double difftime (time_t __time1, time_t __time0)
                                         ^~~~~~
/usr/include/time.h:195:55: error: expression list treated as compound expression in initializer [-fpermissive]
 extern double difftime (time_t __time1, time_t __time0)
                                                       ^
/usr/include/time.h:199:8: error: ‘time_t’ does not name a type
 extern time_t mktime (struct tm *__tp) __THROW;
        ^~~~~~
/usr/include/time.h:205:8: error: ‘size_t’ does not name a type
 extern size_t strftime (char *__restrict __s, size_t __maxsize,
        ^~~~~~
/usr/include/time.h:223:8: error: ‘size_t’ does not name a type
 extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
        ^~~~~~
/usr/include/time.h:239:33: error: ‘time_t’ does not name a type
 extern struct tm *gmtime (const time_t *__timer) __THROW;
                                 ^~~~~~
/usr/include/time.h:243:36: error: ‘time_t’ does not name a type
 extern struct tm *localtime (const time_t *__timer) __THROW;
                                    ^~~~~~
/usr/include/time.h:249:35: error: ‘time_t’ does not name a type
 extern struct tm *gmtime_r (const time_t *__restrict __timer,
                                   ^~~~~~
/usr/include/time.h:254:38: error: ‘time_t’ does not name a type
 extern struct tm *localtime_r (const time_t *__restrict __timer,
                                      ^~~~~~
/usr/include/time.h:264:27: error: ‘time_t’ does not name a type
 extern char *ctime (const time_t *__timer) __THROW;
                           ^~~~~~
/usr/include/time.h:276:29: error: ‘time_t’ does not name a type
 extern char *ctime_r (const time_t *__restrict __timer,
                             ^~~~~~
/usr/include/time.h:304:25: error: ‘time_t’ does not name a type
 extern int stime (const time_t *__when) __THROW;
                         ^~~~~~
/usr/include/time.h:319:8: error: ‘time_t’ does not name a type
 extern time_t timegm (struct tm *__tp) __THROW;
        ^~~~~~
/usr/include/time.h:322:8: error: ‘time_t’ does not name a type
 extern time_t timelocal (struct tm *__tp) __THROW;
        ^~~~~~
/usr/include/time.h:339:26: error: ‘clockid_t’ was not declared in this scope
 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __THROW;
                          ^~~~~~~~~
/usr/include/time.h:339:48: error: expected primary-expression before ‘struct’
 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __THROW;
                                                ^~~~~~
/usr/include/time.h:339:70: error: expression list treated as compound expression in initializer [-fpermissive]
 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __THROW;
                                                                      ^
/usr/include/time.h:342:27: error: ‘clockid_t’ was not declared in this scope
 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __THROW;
                           ^~~~~~~~~
/usr/include/time.h:342:49: error: expected primary-expression before ‘struct’
 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __THROW;
                                                 ^~~~~~
/usr/include/time.h:342:70: error: expression list treated as compound expression in initializer [-fpermissive]
 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __THROW;
                                                                      ^
/usr/include/time.h:345:27: error: ‘clockid_t’ was not declared in this scope
 extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
                           ^~~~~~~~~
/usr/include/time.h:345:49: error: expected primary-expression before ‘const’
 extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
                                                 ^~~~~
/usr/include/time.h:345:76: error: expression list treated as compound expression in initializer [-fpermissive]
 extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
                                                                            ^
/usr/include/time.h:353:29: error: ‘clockid_t’ was not declared in this scope
 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
                             ^~~~~~~~~
/usr/include/time.h:353:51: error: expected primary-expression before ‘int’
 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
                                                   ^~~
/usr/include/time.h:354:8: error: expected primary-expression before ‘const’
        const struct timespec *__req,
        ^~~~~
/usr/include/time.h:355:8: error: expected primary-expression before ‘struct’
        struct timespec *__rem);
        ^~~~~~
/usr/include/time.h:355:30: error: expression list treated as compound expression in initializer [-fpermissive]
        struct timespec *__rem);
                              ^
/usr/include/time.h:358:33: error: ‘pid_t’ was not declared in this scope
 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW;
                                 ^~~~~
/usr/include/time.h:358:46: error: ‘clockid_t’ was not declared in this scope
 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW;
                                              ^~~~~~~~~
/usr/include/time.h:358:57: error: ‘__clock_id’ was not declared in this scope
 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW;
                                                         ^~~~~~~~~~
/usr/include/time.h:358:67: error: expression list treated as compound expression in initializer [-fpermissive]
 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW;
                                                                   ^
/usr/include/time.h:363:26: error: ‘clockid_t’ was not declared in this scope
 extern int timer_create (clockid_t __clock_id,
                          ^~~~~~~~~
/usr/include/time.h:364:5: error: expected primary-expression before ‘struct’
     struct sigevent *__restrict __evp,
     ^~~~~~
/usr/include/time.h:365:5: error: ‘timer_t’ was not declared in this scope
     timer_t *__restrict __timerid) __THROW;
     ^~~~~~~
/usr/include/time.h:365:14: error: expected primary-expression before ‘__restrict’
     timer_t *__restrict __timerid) __THROW;
              ^~~~~~~~~~
/usr/include/time.h:365:34: error: expression list treated as compound expression in initializer [-fpermissive]
     timer_t *__restrict __timerid) __THROW;
                                  ^
/usr/include/time.h:368:26: error: ‘timer_t’ was not declared in this scope
 extern int timer_delete (timer_t __timerid) __THROW;
                          ^~~~~~~
/usr/include/time.h:371:27: error: ‘timer_t’ was not declared in this scope
 extern int timer_settime (timer_t __timerid, int __flags,
                           ^~~~~~~
/usr/include/time.h:371:46: error: expected primary-expression before ‘int’
 extern int timer_settime (timer_t __timerid, int __flags,
                                              ^~~
/usr/include/time.h:372:6: error: expected primary-expression before ‘const’
      const struct itimerspec *__restrict __value,
      ^~~~~
/usr/include/time.h:373:6: error: expected primary-expression before ‘struct’
      struct itimerspec *__restrict __ovalue) __THROW;
      ^~~~~~
/usr/include/time.h:373:44: error: expression list treated as compound expression in initializer [-fpermissive]
      struct itimerspec *__restrict __ovalue) __THROW;
                                            ^
/usr/include/time.h:376:27: error: ‘timer_t’ was not declared in this scope
 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
                           ^~~~~~~
/usr/include/time.h:376:46: error: expected primary-expression before ‘struct’
 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
                                              ^~~~~~
/usr/include/time.h:376:72: error: expression list treated as compound expression in initializer [-fpermissive]
 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
                                                                        ^
/usr/include/time.h:380:30: error: ‘timer_t’ was not declared in this scope
 extern int timer_getoverrun (timer_t __timerid) __THROW;
                              ^~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:35:0,
                 from /usr/include/x86_64-linux-gnu/c++/6/bits/gthr.h:148,
                 from /usr/include/c++/6/ext/atomicity.h:35,
                 from /usr/include/c++/6/bits/ios_base.h:39,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/pthread.h:306:11: error: ‘size_t’ has not been declared
           size_t *__guardsize)
           ^~~~~~
/usr/include/pthread.h:311:11: error: ‘size_t’ has not been declared
           size_t __guardsize)
           ^~~~~~
/usr/include/pthread.h:369:19: error: ‘size_t’ has not been declared
           __attr, size_t *__restrict __stacksize)
                   ^~~~~~
/usr/include/pthread.h:376:11: error: ‘size_t’ has not been declared
           size_t __stacksize)
           ^~~~~~
/usr/include/pthread.h:383:7: error: ‘size_t’ has not been declared
       size_t *__restrict __stacksize)
       ^~~~~~
/usr/include/pthread.h:390:7: error: ‘size_t’ has not been declared
       size_t __stacksize) __THROW __nonnull ((1));
       ^~~~~~
/usr/include/pthread.h:397:6: error: ‘size_t’ has not been declared
      size_t __cpusetsize,
      ^~~~~~
/usr/include/pthread.h:404:6: error: ‘size_t’ has not been declared
      size_t __cpusetsize,
      ^~~~~~
/usr/include/pthread.h:447:11: error: ‘size_t’ has not been declared
           size_t __buflen)
           ^~~~~~
/usr/include/pthread.h:474:52: error: ‘size_t’ has not been declared
 extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
                                                    ^~~~~~
/usr/include/pthread.h:479:52: error: ‘size_t’ has not been declared
 extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
                                                    ^~~~~~
/usr/include/pthread.h:1029:11: error: ‘__clockid_t’ has not been declared
           __clockid_t *__restrict __clock_id)
           ^~~~~~~~~~~
/usr/include/pthread.h:1034:11: error: ‘__clockid_t’ has not been declared
           __clockid_t __clock_id)
           ^~~~~~~~~~~
/usr/include/pthread.h:1129:7: error: ‘__clockid_t’ has not been declared
       __clockid_t *__clock_id)
       ^~~~~~~~~~~
In file included from /usr/include/c++/6/cstdlib:75:0,
                 from /usr/include/c++/6/ext/string_conversions.h:41,
                 from /usr/include/c++/6/bits/basic_string.h:5417,
                 from /usr/include/c++/6/string:52,
                 from /usr/include/c++/6/bits/locale_classes.h:40,
                 from /usr/include/c++/6/bits/ios_base.h:41,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/stdlib.h:100:8: error: ‘size_t’ does not name a type
 extern size_t __ctype_get_mb_cur_max (void) __THROW __wur;
        ^~~~~~
In file included from /usr/include/stdlib.h:275:0,
                 from /usr/include/c++/6/cstdlib:75,
                 from /usr/include/c++/6/ext/string_conversions.h:41,
                 from /usr/include/c++/6/bits/basic_string.h:5417,
                 from /usr/include/c++/6/string:52,
                 from /usr/include/c++/6/bits/locale_classes.h:40,
                 from /usr/include/c++/6/bits/ios_base.h:41,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/sys/types.h:33:9: error: ‘__u_char’ does not name a type
 typedef __u_char u_char;
         ^~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:34:9: error: ‘__u_short’ does not name a type
 typedef __u_short u_short;
         ^~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:35:9: error: ‘__u_int’ does not name a type
 typedef __u_int u_int;
         ^~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:36:9: error: ‘__u_long’ does not name a type
 typedef __u_long u_long;
         ^~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:37:9: error: ‘__quad_t’ does not name a type
 typedef __quad_t quad_t;
         ^~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:38:9: error: ‘__u_quad_t’ does not name a type
 typedef __u_quad_t u_quad_t;
         ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:39:9: error: ‘__fsid_t’ does not name a type
 typedef __fsid_t fsid_t;
         ^~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:44:9: error: ‘__loff_t’ does not name a type
 typedef __loff_t loff_t;
         ^~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:60:9: error: ‘__dev_t’ does not name a type
 typedef __dev_t dev_t;
         ^~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:70:9: error: ‘__mode_t’ does not name a type
 typedef __mode_t mode_t;
         ^~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:75:9: error: ‘__nlink_t’ does not name a type
 typedef __nlink_t nlink_t;
         ^~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:115:9: error: ‘__daddr_t’ does not name a type
 typedef __daddr_t daddr_t;
         ^~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:116:9: error: ‘__caddr_t’ does not name a type
 typedef __caddr_t caddr_t;
         ^~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:122:9: error: ‘__key_t’ does not name a type
 typedef __key_t key_t;
         ^~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:140:9: error: ‘__suseconds_t’ does not name a type
 typedef __suseconds_t suseconds_t;
         ^~~~~~~~~~~~~
In file included from /usr/include/stdlib.h:275:0,
                 from /usr/include/c++/6/cstdlib:75,
                 from /usr/include/c++/6/ext/string_conversions.h:41,
                 from /usr/include/c++/6/bits/basic_string.h:5417,
                 from /usr/include/c++/6/string:52,
                 from /usr/include/c++/6/bits/locale_classes.h:40,
                 from /usr/include/c++/6/bits/ios_base.h:41,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/sys/types.h:228:9: error: ‘__blksize_t’ does not name a type
 typedef __blksize_t blksize_t;
         ^~~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:235:9: error: ‘__blkcnt_t’ does not name a type
 typedef __blkcnt_t blkcnt_t;  /* Type to count number of disk blocks.  */
         ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:239:9: error: ‘__fsblkcnt_t’ does not name a type
 typedef __fsblkcnt_t fsblkcnt_t; /* Type to count file system blocks.  */
         ^~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:243:9: error: ‘__fsfilcnt_t’ does not name a type
 typedef __fsfilcnt_t fsfilcnt_t; /* Type to count file system inodes.  */
         ^~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:262:9: error: ‘__blkcnt64_t’ does not name a type
 typedef __blkcnt64_t blkcnt64_t;     /* Type to count number of disk blocks. */
         ^~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:263:9: error: ‘__fsblkcnt64_t’ does not name a type
 typedef __fsblkcnt64_t fsblkcnt64_t; /* Type to count file system blocks.  */
         ^~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/types.h:264:9: error: ‘__fsfilcnt64_t’ does not name a type
 typedef __fsfilcnt64_t fsfilcnt64_t; /* Type to count file system inodes.  */
         ^~~~~~~~~~~~~~
In file included from /usr/include/c++/6/cstdlib:75:0,
                 from /usr/include/c++/6/ext/string_conversions.h:41,
                 from /usr/include/c++/6/bits/basic_string.h:5417,
                 from /usr/include/c++/6/string:52,
                 from /usr/include/c++/6/bits/locale_classes.h:40,
                 from /usr/include/c++/6/bits/ios_base.h:41,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/stdlib.h:292:4: error: ‘size_t’ has not been declared
    size_t __statelen) __THROW __nonnull ((2));
    ^~~~~~
/usr/include/stdlib.h:322:4: error: ‘size_t’ has not been declared
    size_t __statelen,
    ^~~~~~
/usr/include/stdlib.h:427:22: error: ‘size_t’ was not declared in this scope
 extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;
                      ^~~~~~
/usr/include/stdlib.h:427:22: note: suggested alternatives:
In file included from /usr/include/c++/6/iosfwd:38:0,
                 from /usr/include/c++/6/ios:38,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:201:26: note:   ‘std::size_t’
   typedef __SIZE_TYPE__  size_t;
                          ^~~~~~
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:201:26: note:   ‘std::size_t’
In file included from /usr/include/c++/6/cstdlib:75:0,
                 from /usr/include/c++/6/ext/string_conversions.h:41,
                 from /usr/include/c++/6/bits/basic_string.h:5417,
                 from /usr/include/c++/6/string:52,
                 from /usr/include/c++/6/bits/locale_classes.h:40,
                 from /usr/include/c++/6/bits/ios_base.h:41,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/stdlib.h:429:22: error: ‘size_t’ was not declared in this scope
 extern void *calloc (size_t __nmemb, size_t __size)
                      ^~~~~~
/usr/include/stdlib.h:429:22: note: suggested alternatives:
In file included from /usr/include/c++/6/iosfwd:38:0,
                 from /usr/include/c++/6/ios:38,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:201:26: note:   ‘std::size_t’
   typedef __SIZE_TYPE__  size_t;
                          ^~~~~~
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:201:26: note:   ‘std::size_t’
In file included from /usr/include/c++/6/cstdlib:75:0,
                 from /usr/include/c++/6/ext/string_conversions.h:41,
                 from /usr/include/c++/6/bits/basic_string.h:5417,
                 from /usr/include/c++/6/string:52,
                 from /usr/include/c++/6/bits/locale_classes.h:40,
                 from /usr/include/c++/6/bits/ios_base.h:41,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/stdlib.h:429:38: error: ‘size_t’ was not declared in this scope
 extern void *calloc (size_t __nmemb, size_t __size)
                                      ^~~~~~
/usr/include/stdlib.h:429:38: note: suggested alternatives:
In file included from /usr/include/c++/6/iosfwd:38:0,
                 from /usr/include/c++/6/ios:38,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:201:26: note:   ‘std::size_t’
   typedef __SIZE_TYPE__  size_t;
                          ^~~~~~
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:201:26: note:   ‘std::size_t’
In file included from /usr/include/c++/6/cstdlib:75:0,
                 from /usr/include/c++/6/ext/string_conversions.h:41,
                 from /usr/include/c++/6/bits/basic_string.h:5417,
                 from /usr/include/c++/6/string:52,
                 from /usr/include/c++/6/bits/locale_classes.h:40,
                 from /usr/include/c++/6/bits/ios_base.h:41,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/stdlib.h:429:51: error: expression list treated as compound expression in initializer [-fpermissive]
 extern void *calloc (size_t __nmemb, size_t __size)
                                                   ^
/usr/include/stdlib.h:441:36: error: ‘size_t’ has not been declared
 extern void *realloc (void *__ptr, size_t __size)
                                    ^~~~~~
In file included from /usr/include/stdlib.h:453:0,
                 from /usr/include/c++/6/cstdlib:75,
                 from /usr/include/c++/6/ext/string_conversions.h:41,
                 from /usr/include/c++/6/bits/basic_string.h:5417,
                 from /usr/include/c++/6/string:52,
                 from /usr/include/c++/6/bits/locale_classes.h:40,
                 from /usr/include/c++/6/bits/ios_base.h:41,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/alloca.h:32:22: error: ‘size_t’ was not declared in this scope
 extern void *alloca (size_t __size) __THROW;
                      ^~~~~~
/usr/include/alloca.h:32:22: note: suggested alternatives:
In file included from /usr/include/c++/6/iosfwd:38:0,
                 from /usr/include/c++/6/ios:38,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:201:26: note:   ‘std::size_t’
   typedef __SIZE_TYPE__  size_t;
                          ^~~~~~
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:201:26: note:   ‘std::size_t’
In file included from /usr/include/c++/6/cstdlib:75:0,
                 from /usr/include/c++/6/ext/string_conversions.h:41,
                 from /usr/include/c++/6/bits/basic_string.h:5417,
                 from /usr/include/c++/6/string:52,
                 from /usr/include/c++/6/bits/locale_classes.h:40,
                 from /usr/include/c++/6/bits/ios_base.h:41,
                 from /usr/include/c++/6/ios:42,
                 from /usr/include/c++/6/istream:38,
                 from /usr/include/c++/6/sstream:38,
                 from prog.cpp:6:
/usr/include/stdlib.h:459:22: error: ‘size_t’ was not declared in this scope
 extern void *valloc (size_t __size) __THROW __attribute_malloc__ __wur;
                      ^~~~~~
/usr/include/stdlib.h:459:22: note: suggested alternatives:
In file included from /usr/include/c++/6/iosfwd:38:0,
                 from /usr/include/c++/6/ios:38,
               
stdout
Standard output is empty