Какое значение имеет & ldquo; POSIX & rdquo ;?

    [System.IO.FileInfo] $file = Get-Item -Path $FilePath 
    $sequenceBOM = New-Object System.Byte[] 3 
    $reader = $file.OpenRead() 
    $bytesRead = $reader.Read($sequenceBOM, 0, 3) 
    $reader.Dispose() 
    #A UTF-8+BOM string will start with the three following bytes. Hex: 0xEF0xBB0xBF, Decimal: 239 187 191 
    if ($bytesRead -eq 3 -and $sequenceBOM[0] -eq 239 -and $sequenceBOM[1] -eq 187 -and $sequenceBOM[2] -eq 191) 
    { 
        $utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False) 
        [System.IO.File]::WriteAllLines($FilePath, (Get-Content $FilePath), $utf8NoBomEncoding) 
        Write-Host "Remove UTF-8 BOM successfully" 
    } 
    Else 
    { 
        Write-Warning "Not UTF-8 BOM file" 
    }  

Источник Как удалить отметку порядка байтов UTF8 (BOM) из файла с помощью PowerShell

793
задан halfer 5 October 2018 в 21:09
поделиться

6 ответов

POSIX - это семейство стандартов, определенных IEEE , для уточнения и унификации интерфейсов прикладного программирования (и дополнительных вопросов, таких как утилиты командной строки оболочки ), предоставляемые операционными системами Unix-y. Когда вы пишете свои программы, полагаясь на стандарты POSIX, вы можете быть уверены, что сможете легко переносить их среди большого семейства производных Unix (включая Linux, но не ограничиваясь этим!); если и когда вы используете какой-либо Linux API, который не стандартизирован как часть Posix, вам будет труднее, если и когда вы захотите перенести эту программу или библиотеку на другие системы Unix-y (например, MacOSX) в будущем.

571
ответ дан 22 November 2019 в 21:14
поделиться

POSIX - это набор стандартов, предложенных IEEE и Open Group, который описывает, как будет работать идеальный Unix. Программисты, пользователи и администраторы могут ознакомиться с документом POSIX и ожидать, что Unix-система с жалобой на POSIX предоставит все упомянутые стандартные средства.

Поскольку все системы Unix работают по-своему - Solaris, Mac OS X, IRIX, BSD и Linux имеют свои причуды - POSIX особенно полезен для тех, кто работает в отрасли, поскольку он определяет стандартную среду для работы. Например, большинство функций в библиотеке C основаны на POSIX; поэтому программист может использовать его в своем приложении и ожидать, что он будет вести себя одинаково для большинства Unix.

Однако, как правило, основное внимание уделяется расходящимся областям Unix, а не стандартным.

29
ответ дан 22 November 2019 в 21:14
поделиться

POSIX это:

POSIX (произносится / ˈpɒzɪks /) или "Портативный интерфейс операционной системы [для Unix] " 1 - это название семейства соответствующих стандартов, установленных IEEE для определения приложения программный интерфейс (API), а также с оболочкой и интерфейсами утилит для программного обеспечения, совместимого с вариантами операционной системы Unix, хотя стандарт может применяться к любому операционная система.

По сути, это был набор мер по облегчению проблем разработки и использования различных разновидностей UNIX за счет наличия (в основном) общего API и утилит. Ограниченное соответствие POSIX также распространяется на различные версии Windows.

69
ответ дан 22 November 2019 в 21:14
поделиться

POSIX - это стандарт операционных систем, который должен был упростить написание кросс-платформенного программного обеспечения. Это особенно важно в мире Unix.

28
ответ дан 22 November 2019 в 21:14
поделиться

Posix регулирует совместимость, переносимость и другие области, такие как использование и механизм вилки, разрешения и стандарты файловых систем, такие как / etc, / var, / usr и т. Д. . Следовательно, когда разработчики пишут программу в системе, совместимой с Posix, такой как, например, Linux, обычно не всегда гарантируется ее запуск в другой системе, совместимой с Posix, такой как система IBM AIX или другие коммерческие варианты Unix. Posix - это хорошо, поскольку он упрощает разработку программного обеспечения для максимальной переносимости, к которой он стремится. Надеюсь, этот ответ имеет смысл.

Спасибо Джеду Смиту и Тинкертиму за указание на мою ошибку - моя ошибка !!! : (

0
ответ дан 22 November 2019 в 21:14
поделиться

Позвольте мне дать грубое «неофициальное» объяснение.

POSIX - это набор стандартов, которые пытается отличить "UNIX" и UNIX-подобные системы от несовместимых с ними. Он был создан правительством США для закупочных целей. Идея заключалась в том, что федеральные закупки США нуждались в способе юридического определения требований для различных видов заявок и контрактов таким образом, чтобы их можно было использовать для исключения систем, в которые данная существующая кодовая база или программисты НЕ были бы переносимы.

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

Так, например, Microsoft ' ■ NT была написана с достаточным соответствием POSIX, чтобы претендовать на участие в некоторых торгах ... даже несмотря на то, что подсистема POSIX была по существу бесполезной с точки зрения практической переносимости и совместимости с системами UNIX.

Различные другие стандарты для UNIX были написаны десятилетиями. Такие вещи, как SPEC1170 (определено одиннадцатьсот семьдесят вызовов функций, которые должны были быть реализованы совместимо) и различные воплощения SUS (Единая спецификация UNIX).

По большей части эти «стандарты» не соответствовали любому практическому техническому применению . Большинство из них существуют для аргументов, юридических споров и других дисфункциональных причин.

Различные другие стандарты для UNIX были написаны десятилетиями. Такие вещи, как SPEC1170 (указаны одиннадцатьсот семьдесят вызовов функций, которые должны были быть реализованы совместимо) и различные воплощения SUS (единая спецификация UNIX).

По большей части эти «стандарты» не соответствовали любому практическому техническому применению . Большинство из них существуют для аргументов, юридических споров и других дисфункциональных причин.

Различные другие стандарты для UNIX были написаны десятилетиями. Такие вещи, как SPEC1170 (указаны одиннадцатьсот семьдесят вызовов функций, которые должны были быть реализованы совместимо) и различные воплощения SUS (единая спецификация UNIX).

По большей части эти «стандарты» не соответствовали любому практическому техническому применению . Большинство из них существуют для аргументов, юридических споров и других дисфункциональных причин.

41
ответ дан 22 November 2019 в 21:14
поделиться
Другие вопросы по тегам:

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