Різниця між виконуваними файлами python3 та python3m


116

Яка різниця між /usr/bin/python3та /usr/bin/python3mвиконавчими матеріалами?

Я спостерігаю за ними на Ubuntu 13.04, але Google припускає, що вони існують і в інших дистрибутивах.

Два файли мають однаковий md5sum, але не здаються символічними або жорсткими посиланнями; два файли мають різні номери введення, повернені ls -liі тестування find -xdev -samefile /usr/bin/python3.3не повертає жодних інших файлів.

Хтось задав подібне запитання щодо AskUbuntu , але я хотів дізнатися більше про різницю між двома файлами.


11
Це висвітлено в ПЕП, згаданому у відповіді на пов'язане питання.
чепнер

Ах, дякую! Перш ніж писати це запитання, я прочитав перші кілька рядків ПЕП, але був лінивий, щоб прочитати все це ...
Джеймс Мішра

Відповіді:


117

За це заслуга Чепнера за те, що я зазначив, що я вже мав посилання на рішення.

Реалізації Python МОЖЕ включати додаткові прапорці в тег імені файлу, якщо це доречно. Наприклад, в системах POSIX ці прапори також сприятимуть назві файлу:

--з pydebug (прапор: d)

--з пімалоком (прапор: м)

--with-wide-unicode (прапор: u)

через PEP 3149 .

Що стосується mконкретного прапора, то це Pymalloc:

Pymalloc, спеціалізований розподільник об'єктів, написаний Володимиром Марангозовим, був функцією, доданою до Python 2.1. Pymalloc призначений бути швидшим, ніж системний malloc (), і мати менші накладні витрати на пам'ять для шаблонів розподілу, типових для програм Python. Розподільник використовує функцію malloc () C для отримання великих пулів пам'яті, а потім виконує менші запити на пам'ять з цих пулів.

через Що нового в Python 2.3

Нарешті, в деяких системах два файли можуть бути жорстко пов'язані. Хоча два файли мають різні номери введення в моїй системі Ubuntu 13.04 (таким чином це різні файли), повідомлення comp.lang.python від двох років тому показує, що вони колись були жорсткими посиланнями.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.