Могу ли я использовать CFPropertyListWriteToStream с stderr? - PullRequest
0 голосов
/ 05 октября 2011

Я хочу использовать CFPropertyListWriteToStream для записи в stderr.Если я введу stderr в качестве аргумента, я получу ошибку:

error: cannot convert ‘FILE*’ to ‘__CFWriteStream*’ for argument ‘2’ to ‘CFIndex CFPropertyListWriteToStream

Как мне сделать CFWriteStream объект, который пишет в stderr?

1 Ответ

1 голос
/ 03 июля 2012

Вы можете использовать технику, которую я нашел здесь :

  CFWriteStreamRef stdoutStream = NULL;
  if (verbose) {
    CFURLRef devStdout =
      CFURLCreateWithFileSystemPath(NULL, CFSTR("/dev/stderr"),
                    kCFURLPOSIXPathStyle, false);
    stdoutStream = CFWriteStreamCreateWithFile(NULL, devStdout);
    if (stdoutStream == NULL)
      errexit("cannot create CFWriteStream for /dev/stderr");
    if (!CFWriteStreamOpen(stdoutStream))
      errexit("cannot open CFWriteStream for /dev/stderr");
  }                               
...