Posix win threads for windows не работает

Обновлено: 07.07.2024

Я использую сервер WAMP в Windows 7 и пытаюсь использовать posix функция в PHP, но он не работает и дает fatal error:undefined function , Теперь я хочу знать, как я могу установить его на Windows.

Если это не доступно для Windows, как бы знать как получить имя владельца файла по идентификатору в Windows, и где я могу прочитать о реализации подобных функций posix в Windows.

Решение

Очевидно, что поскольку собственно Windows не является операционной системой POSIX, вы не можете использовать поддержку PHP POSIX в стандартном стеке WAMP.

Например, чтобы узнать владельца файла, вы можете использовать System.IO.File.GetAccessControl как описано в ответах на этот вопрос . Скорее всего, вы найдете существующие вопросы и ответы для решения большинства других ваших потребностей.

(Вы можете предпочесть переключение на стек LAMP на виртуальной машине, если это необходимо.)

Windows 10 предоставляет бета Поддержка POSIX через подсистему Windows для Linux, а некоторые версии Windows Server поддерживают Interix, еще одну подсистему на основе POSIX, но, насколько мне известно, ни один стандартный стек WAMP не делает ни один из них напрямую доступным из PHP.

В любом случае, если вы используете расширения, специфичные для ОС, во-первых, почти всегда будет предпочтительнее использовать функциональность, присущую реальной операционной системе хоста, чтобы избежать ненужных сложностей. Например, получение идентификатора владельца WSL для файла в разделе NTFS может привести к потере информации, поскольку Linux поддерживает только 32-разрядные идентификаторы, которые сильно отличаются от идентификаторов безопасности Windows.

Отказ от ответственности: я понятия не имею, что на самом деле делает WSL в таких случаях; Вполне возможно, что в некоторых сценариях это не представляет реальной проблемы. Я просто хочу сказать, что необходимость выяснить, как это работает, чтобы убедиться, что он будет соответствовать вашим потребностям, является ненужным усложнением по сравнению с использованием функциональности, встроенной в Windows, или работой службы на подлинном хосте Linux, если вы этого предпочитаете. ,

Другие решения

На мой взгляд, вам лучше всего вызывать собственные команды Windows через C ++. На мой взгляд, ваш вопрос слишком расплывчатый, поэтому я остановлюсь только на вашем примере. В основном то, что вам нужно:

В следующем примере используется GetSecurityInfo а также LookupAccountSid функции для поиска и печати имени владельца файла

Что касается PHP, не существует чистого решения для получения идентификатора пользователя. Я бы предложил вызвать маленький C ++ exe, реализованный, как указано выше, если вам это нужно, через функцию exec или что-то подобное.

Я устанавливаю mingw-w64 на Windows, и есть два варианта: win32 threads и posix threads. Я знаю, в чем разница между потоками win32 и pthreads, но я не понимаю, в чем разница между этими двумя вариантами. Я сомневаюсь, что если я выберу потоки posix, это помешает мне вызывать функции WinAPI, такие как CreateThread.

кажется, что эта опция указывает, какой API потоков будет использоваться некоторой программой или библиотекой, но чем? По НКУ, libstdc++ или что-то еще?

Я нашел это: в чем разница между thread_posixs и thread_win32 в порту gcc windows?

короче говоря, для этой версии mingw выпуск threads-posix будет использовать API posix и разрешать использование std::thread, а threads-win32 будет использовать API win32 и отключит часть std::thread стандарта.

Ok, если я выберу win32 threads, то std:: thread будет недоступно, но потоки win32 по-прежнему будут использоваться. Но используется кем?

GCC поставляется с библиотекой времени выполнения компилятора (libgcc), которую он использует (среди прочего), обеспечивая низкоуровневую абстракцию ОС для многопоточности связанных функций на языках, которые он поддерживает. Наиболее релевантным примером является libstdc++ ' S C++11 <thread> , <mutex> и <future> , которые не имеют полной реализации, когда GCC построен с его внутренней моделью потоков Win32. MinGW-w64 предоставляет winpthreads (реализация pthreads поверх многопоточного API Win32), который Затем GCC может подключиться, чтобы включить все причудливые функции.

Я должен подчеркнуть, что эта опция не запрещает вам писать любой код, который вы хотите (он имеет абсолютно нет влияние на то, какой API вы можете вызвать в своем коде). Он отражает только то, что библиотеки времени выполнения GCC (libgcc / libstdc++/. ) использовать для их функциональности. Оговорка, цитируемая @James, не имеет ничего общего с внутренней моделью потоковой передачи GCC, а скорее с реализацией CRT Microsoft.

для подведем итог:

  • posix : включить функции многопоточности C++11/C11. Делает libgcc зависеть от libwinpthreads, так что даже если вы непосредственно не вызываете pthreads API, вы будете распространять WINPTHREADS DLL. Нет ничего плохого в распространении еще одной DLL с вашим приложением.
  • win32 : нет функций многопоточности C++11.

ни имеют влияние на любой пользовательский код, вызывающий Win32 APIs или Pthreads APIs. Вы всегда можете использовать оба.

части среды выполнения GCC (в частности, обработка исключений) зависят от используемой модели потоков. Таким образом, если вы используете версию среды выполнения, которая была построена с потоками POSIX, но решили создать потоки в своем собственном коде с API Win32, в какой-то момент у вас могут возникнуть проблемы.

даже если вы используете потоковую версию Win32 среды выполнения, вы, вероятно, не должны вызывать API Win32 напрямую. Цитата из компилятор MinGW FAQ:

поскольку MinGW использует стандартную библиотеку времени выполнения Microsoft C, которая поставляется с Windows, вы должны быть осторожны и использовать правильную функцию для создания нового потока. В частности, CreateThread функция не настроит стек правильно для библиотеки времени выполнения C. Вы должны использовать _beginthreadex вместо этого, который (почти) полностью совместимы с CreateThread .

из истории ревизий похоже, что есть какая-то недавняя попытка сделать это частью среды выполнения mingw64.

Предположим, что компьютер работает служба Telnet подсистемы в Windows 8, Windows Server 2012, Windows 7 или Windows Server 2008 R2. Установить сеанс Telnet на клиентском компьютере, а затем закрыть сеанс Telnet не закрывая другие процессы, которые были порождается в том же сеансе Telnet. При попытке создать новый сеанс Telnet, сбоя процесса Psxss.exe.

Причина

Эта проблема возникает, так как свойство Psxss.exe процесса не обновляется после закрытия сеанса Telnet. Таким образом при создании нового сеанса недопустимое свойство, и происходит сбой.

Решение

Для решения этой проблемы, корпорация Майкрософт выпустила исправление для Windows 8, Windows Server 2012, Windows 7 или Windows Server 2008 R2.
Перед установкой исправления извлечь раздел «Необходимые условия» этой статьи.

Сведения об исправлении

Важно. Языковой пакет не следует устанавливать после установки этого исправления. В противном случае языковые изменения в исправление не будет применяться, и будет необходимо повторно установить исправление. Дополнительные сведения содержатся в статье .

Существует исправление от корпорации Майкрософт. Однако данное исправление предназначено для устранения только проблемы, описанной в этой статье. Применяйте данное исправление только в тех системах, которые имеют данную проблему.

Если исправление доступно для скачивания, имеется раздел "Пакет исправлений доступен для скачивания" в верхней части этой статьи базы знаний. Если этого раздела нет, отправьте запрос в службу технической поддержки для получения исправления.

Примечание. Если наблюдаются другие проблемы или необходимо устранить неполадки, вам может понадобиться создать отдельный запрос на обслуживание. Стандартная оплата за поддержку будет взиматься только за дополнительные вопросы и проблемы, которые не соответствуют требованиям конкретного исправления. Полный список телефонов поддержки и обслуживания клиентов корпорации Майкрософт или создать отдельный запрос на обслуживание посетите следующий веб-узел корпорации Майкрософт:

Примечание. В форме "Пакет исправлений доступен для скачивания" отображаются языки, для которых доступно исправление. Если нужный язык не отображается, значит исправление для данного языка отсутствует.

Подробные сведения об исправлении

Предварительные условия

Для установки этого исправления необходимо установить . А не условием для Windows 8 и Windows Server 2012.

Сведения о реестре

Для использования исправления из этого пакета нет необходимости вносить изменения в реестр.

Необходимость перезагрузки

Может потребоваться перезагрузить компьютер после установки данного исправления.

posix.exe это исполняемый файл, который является частью Microsoft Windows, разработанный Корпорация Microsoft, Версия программного обеспечения для Windows: 6.1.7601.17514 обычно 31952 в байтах, но у вас может отличаться версия.

Расширение .exe имени файла отображает исполняемый файл. В некоторых случаях исполняемые файлы могут повредить ваш компьютер. Пожалуйста, прочитайте следующее, чтобы решить для себя, является ли posix.exe Файл на вашем компьютере - это вирус или вредоносная программа, которую вы должны удалить, или, если это действительно допустимый файл операционной системы Windows или надежное приложение.

Это posix.exe вирус или вредоносная программа?

Posix.exe безопасно, или это вирус или вредоносная программа?

Первое, что поможет вам определить, является ли тот или иной файл законным процессом Windows или вирусом, это местоположение самого исполняемого файла. Например, для posix.exe его путь будет примерно таким: C: \ Program Files \ Microsoft Corporation \ Microsoft Windows \ posix.exe

Чтобы определить его путь, откройте диспетчер задач, перейдите в «Просмотр» -> «Выбрать столбцы» и выберите «Имя пути к изображению», чтобы добавить столбец местоположения в диспетчер задач. Если вы обнаружите здесь подозрительный каталог, возможно, стоит дополнительно изучить этот процесс.

Еще один инструмент, который иногда может помочь вам обнаружить плохие процессы, - это Microsoft Process Explorer. Запустите программу (не требует установки) и активируйте «Проверить легенды» в разделе «Параметры». Теперь перейдите в View -> Select Columns и добавьте «Verified Signer» в качестве одного из столбцов.

Если статус процесса «Проверенная подписывающая сторона» указан как «Невозможно проверить», вам следует взглянуть на процесс. Не все хорошие процессы Windows имеют метку проверенной подписи, но ни один из плохих.

Самые важные факты о posix.exe:

  • Имя: posix.exe
  • Программного обеспечения: Microsoft Windows,
  • Издатель: Корпорация Microsoft
  • Ожидаемое местоположение: C: \ Program Files \ Microsoft Corporation \ Microsoft Windows \ подпапке
  • Ожидаемый полный путь: C: \ Program Files \ Microsoft Corporation \ Microsoft Windows \ posix.exe
  • SHA1: 0003353A4957F2810F114F0101E1CD99AE9E582E
  • SHA256:
  • MD5: 3FB7AE65A2702C14DF2A2618966CEC62
  • Известно, что до 31952 размер байт в большинстве Windows;

Если у вас возникли какие-либо трудности с этим исполняемым файлом, перед удалением posix.exe следует определить, заслуживает ли он доверия. Для этого найдите этот процесс в диспетчере задач.

Найти его местоположение и сравнить размер и т. Д. С приведенными выше фактами

Кроме того, функциональность вируса может сама влиять на удаление файла posix.exe. В этом случае вы должны включить Безопасный режим с поддержкой сети - безопасная среда, которая отключает большинство процессов и загружает только самые необходимые службы и драйверы. Когда вы можете запустить программу безопасности и полный анализ системы.

Могу ли я удалить или удалить posix.exe?

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

Лучшая диагностика для этих подозрительных файлов - полный системный анализ с ASR Pro or это антивирус и средство для удаления вредоносных программ, Если файл классифицирован как вредоносный, эти приложения также удалят posix.exe и избавятся от связанных вредоносных программ.

Однако, если это не вирус, и вам нужно удалить posix.exe, вы можете удалить Microsoft Windows с вашего компьютера, используя его деинсталлятор. Если вы не можете найти его деинсталлятор, то вам может потребоваться удалить Microsoft Windows, чтобы полностью удалить posix.exe. Вы можете использовать функцию «Установка и удаление программ» на панели управления Windows.

  • 1. в Меню Пуск (для Windows 8 щелкните правой кнопкой мыши в нижнем левом углу экрана), нажмите Панель управления, а затем под Программы:
    o Windows Vista / 7 / 8.1 / 10: нажмите Удаление программы.
    o Windows XP: нажмите Установка и удаление программ.
  • 2. Когда вы найдете программу Microsoft Windows,щелкните по нему, а затем:
    o Windows Vista / 7 / 8.1 / 10: нажмите Удалить.
    o Windows XP: нажмите Удалить or Изменить / Удалить вкладка (справа от программы).
  • 3. Следуйте инструкциям по удалению Microsoft Windows,.

Наиболее распространенные ошибки posix.exe, которые могут возникнуть:


• «Ошибка приложения posix.exe».
• «Ошибка posix.exe».
• «posix.exe столкнулся с проблемой и должен быть закрыт. Приносим извинения за неудобства».
• «posix.exe не является допустимым приложением Win32».
• «posix.exe не запущен».
• «posix.exe не найден».
• «Не удается найти posix.exe».
• «Ошибка запуска программы: posix.exe.»
• «Неверный путь к приложению: posix.exe.»

Аккуратный и опрятный компьютер - это один из лучших способов избежать проблем с posix.exe. Это означает выполнение сканирования на наличие вредоносных программ, очистку жесткого диска cleanmgr и ПФС / SCANNOWудаление ненужных программ, мониторинг любых автозапускаемых программ (с помощью msconfig) и включение автоматических обновлений Windows. Не забывайте всегда делать регулярные резервные копии или хотя бы определять точки восстановления.

Если у вас возникла более серьезная проблема, постарайтесь запомнить последнее, что вы сделали, или последнее, что вы установили перед проблемой. Использовать resmon Команда для определения процессов, вызывающих вашу проблему. Даже в случае серьезных проблем вместо переустановки Windows вы должны попытаться восстановить вашу установку или, в случае Windows 8, выполнив команду DISM.exe / Online / Очистка-изображение / Восстановить здоровье, Это позволяет восстановить операционную систему без потери данных.

Чтобы помочь вам проанализировать процесс posix.exe на вашем компьютере, вам могут пригодиться следующие программы: Менеджер задач безопасности отображает все запущенные задачи Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записи автозапуска. Единый рейтинг риска безопасности указывает на вероятность того, что это шпионское ПО, вредоносное ПО или потенциальный троянский конь. Это антивирус обнаруживает и удаляет со своего жесткого диска шпионское и рекламное ПО, трояны, кейлоггеры, вредоносное ПО и трекеры.

Обновлено ноябрь 2021 г .:

Мы рекомендуем вам попробовать этот новый инструмент. Он исправляет множество компьютерных ошибок, а также защищает от таких вещей, как потеря файлов, вредоносное ПО, сбои оборудования и оптимизирует ваш компьютер для максимальной производительности. Это исправило наш компьютер быстрее, чем делать это вручную:

скачать


(опциональное предложение для Reimage - Cайт | Лицензионное соглашение | Политика конфиденциальности | Удалить)

Читайте также: