Что эквивалент к Posix popen () в API Win32?

Я взял несколько других ответов и сделал что-то немного более чистым, поместите этот вызов .config() в конец вашего angular.module в вашем приложении app.js:

.config(['$httpProvider', function ($httpProvider) {
  // Intercept POST requests, convert to standard form encoding
  $httpProvider.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
  $httpProvider.defaults.transformRequest.unshift(function (data, headersGetter) {
    var key, result = [];

    if (typeof data === "string")
      return data;

    for (key in data) {
      if (data.hasOwnProperty(key))
        result.push(encodeURIComponent(key) + "=" + encodeURIComponent(data[key]));
    }
    return result.join("&");
  });
}]);
25
задан dsimcha 17 January 2009 в 02:47
поделиться

3 ответа

MSDN объясняет, как Вы делаете, какой popen делает использование Windows API в Наследование Дескриптора Канала . Здесь это обеспечивает хорошо зарегистрированный пример. Это - путь больше низкого уровня, чем _popen функция, найденная в библиотеке времени выполнения, связанной Jason, но использует API Win32 исключительно.

21
ответ дан Johannes Schaub - litb 28 November 2019 в 07:20
поделиться

Можно звонить _popen, если Вы пишете консольное приложение. Для получения дополнительной информации см. документацию относительно сайта MSDN: http://msdn.microsoft.com/en-us/library/96ayss4b (По сравнению с 80) .aspx

18
ответ дан Jason Coco 28 November 2019 в 07:20
поделиться

Печально это не особенно легко.

необходимо создать канал с помощью функции win32 (CreatePipe), тогда обычно необходимо копировать конец канала (DuplicateHandle), который Вы даете подпроцессу, чтобы позволить ему быть наследованным, иначе это не будет и следовательно не может использоваться.

Тогда необходимо создать использование процесса CreateProcess (который берет много указателей структуры, включая STARTUPINFO), и передача в STARTUPINFO дескриптор, который Вы копировали как его stdout.

Тогда можно читать из конца чтения канала (ReadFile и т.д.), пока Вы не достигаете eof, тогда необходимо вымыться путем закрытия всех различных дескрипторов win32.

3
ответ дан MarkR 28 November 2019 в 07:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: