Forquilha () no iPhone

O SDK do iPhone permitefork() epipe(), as funções tradicionais do unix? Não consigo fazê-los funcionar.

Editar

Problema resolvido. Aqui, ofereço uma solução para quem encontra problemas semelhantes a mim. Eu fui inspirado pelas respostas neste tópico.

No iPhone, não há como bifurcar um processo. No entanto, não é impossível implementar tubulações. No meu projeto, crio um novo thread POSIX (leia a documentação da Apple para saber como fazer isso). O encadeamento filho compartilharia um descritor de arquivo criado por pipe () com o encadeamento pai. Threads filho e pai podem se comunicar por meio de pipes. Por exemplo, meu thread filho dup2 () fd [1] para sua saída padrão. Portanto, qualquer saída padrão pode ser capturada no encadeamento pai. Semelhante a fd [0] e entrada padrão.

Pseudocódigo (não tenho o código disponível, mas você entendeu):

int fd[2];
pipe(fd);
create_posix_thread(&myThread, fd);
char buffer[1024];
read(fd[0], buffer, 1024);
printf("%s", buffer); // == "Hello World"    

void myThread(int fd[])
{
  dup2(fd[1], STANDARD_OUTPUT);
  printf("Hello World");
}

A estratégia é muito útil se você deseja usar uma biblioteca de terceiros no aplicativo do iPhone. No entanto, um problema é que a depuração padrão usando printf () não está mais disponível. No meu projeto, simplesmente direcionei todas as saídas de depuração para o erro padrão, o XCode exibia as saídas para seu console.

questionAnswers(1)

yourAnswerToTheQuestion