2015-12-07 3 views
1

im new для C++, и мне было трудно найти хорошую среду IDE. Теперь у меня есть блоки кода, но я не могу использовать Systemcalls как вилки, подождите и т.д.C++ - использовать системные вызовы (fork, exec, wait и т. Д.) В блоках кода

Я использую для Windows 7.

#include <iostream> 
#include <stdlib.h>; 
#include <sys/types.h> 
#include <unistd.h> 

using namespace std; 

int main() 
{ 

    cout << "I am " << (int) getpid() << endl; 
    pid_t pid = fork(); 
    cout << "fork returned" << (int) pid << endl; 
     return 0; 

     if(pid<0) { 
      cout << "Failed !" << endl; 
      exit(3); 
     } 
     if(pid == 0) { 
       cout << "i am the child" << (int) getpid() << endl; 
       cout << "Child exiting" << endl; 
       exit(0); 

     } 

     if(pid >= 0) { 
      cout << "i am the parent" << (int) getpid() << endl; 
      wait(NULL); 
      cout << "Parent ending" << endl; 
     } 

     return 0; 
} 

Я не могу включать сист/wait.h Ошибки:

ошибка : fork не был объявлен в этой области ошибка: ожидание не было объявлено в этой области

Спасибо за консультацию!

ответ

3

Я использую для Windows 7.

Тогда действительно вы собираетесь бороться с помощью функции POSIX. Windows не является ОС POSIX.

Вместо этого вам нужно будет использовать функции Windows API.

Возьмите список требований к проекту, затем изучите, как достичь каждого из них в Windows.

Например:

+0

Существует также Cygwin, но это может повредить ... http://stackoverflow.com/questions/985281/what-is-the-closest -thing-windows-has-to-fork –

+0

@Ben: Hah, jinx –

+0

Я вижу редактирование 40 секунд назад и мой комментарий 58 секунд назад! Так что я думаю, что я не понимаю этого Jinx ... Phew –

Смежные вопросы