posix --- Các lệnh gọi hệ thống POSIX phổ biến nhất¶
Mô-đun này cung cấp quyền truy cập vào chức năng của hệ điều hành được tiêu chuẩn hóa theo Tiêu chuẩn C và tiêu chuẩn POSIX (giao diện Unix được ngụy trang mỏng).
sẵn có: Unix.
Do not import this module directly. Thay vào đó, hãy nhập mô-đun os, mô-đun này cung cấp phiên bản portable của giao diện này. Trên Unix, mô-đun os cung cấp siêu giao diện posix. Trên các hệ điều hành không phải Unix, mô-đun posix không khả dụng nhưng một tập hợp con luôn có sẵn thông qua giao diện os. Sau khi os được nhập, hiệu suất của no sẽ bị phạt khi sử dụng nó thay vì posix. Ngoài ra, os còn cung cấp một số chức năng bổ sung, chẳng hạn như tự động gọi putenv() khi một mục trong os.environ bị thay đổi.
Lỗi được báo cáo là trường hợp ngoại lệ; các ngoại lệ thông thường được đưa ra cho các lỗi loại, trong khi các lỗi được báo cáo bởi lệnh gọi hệ thống lại tăng lên OSError.
Hỗ trợ tệp lớn¶
Một số hệ điều hành (bao gồm AIX và Solaris) cung cấp hỗ trợ cho các tệp lớn hơn 2 GiB từ mô hình lập trình C trong đó int và long là giá trị 32 bit. Điều này thường được thực hiện bằng cách xác định kích thước và loại offset có liên quan dưới dạng giá trị 64 bit. Những tập tin như vậy đôi khi được gọi là large files.
Hỗ trợ tệp lớn được bật trong Python khi kích thước của off_t lớn hơn long và long long ít nhất lớn bằng off_t. Có thể cần phải định cấu hình và biên dịch Python với các cờ trình biên dịch nhất định để bật chế độ này. Ví dụ: với Solaris 2.6 và 2.7, bạn cần thực hiện một số việc như
CFLAGS="`getconf LFS_CFLAGS`" OPT="-g -O2 $CFLAGS" \
./cấu hình
Trên các hệ thống Linux có khả năng chứa tệp lớn, điều này có thể hoạt động
CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" \
./cấu hình
Nội dung mô-đun đáng chú ý¶
Ngoài nhiều chức năng được mô tả trong tài liệu mô-đun os, posix còn xác định mục dữ liệu sau:
- posix.environ¶
Một từ điển đại diện cho môi trường chuỗi tại thời điểm trình thông dịch được khởi động. Khóa và giá trị là byte trên Unix và str trên Windows. Ví dụ:
environ[b'HOME'](environ['HOME']trên Windows) là tên đường dẫn của thư mục chính của bạn, tương đương vớigetenv("HOME")trong C.Việc sửa đổi từ điển này không ảnh hưởng đến môi trường chuỗi được truyền bởi
execv(),popen()hoặcsystem(); nếu bạn cần thay đổi môi trường, hãy chuyểnenvironsangexecve()hoặc thêm các phép gán biến và xuất câu lệnh sang chuỗi lệnh chosystem()hoặcpopen().Thay đổi trong phiên bản 3.2: Trên Unix, khóa và giá trị là byte.
Ghi chú
Mô-đun
oscung cấp triển khai thay thếenvironđể cập nhật môi trường khi sửa đổi. Cũng lưu ý rằng việc cập nhậtos.environsẽ khiến từ điển này trở nên lỗi thời. Nên sử dụng phiên bản mô-đunosnày thay vì truy cập trực tiếp vào mô-đunposix.