arposix - Trực tuyến trên đám mây

Đây là arposix lệnh có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


ar - tạo và duy trì kho lưu trữ thư viện

SYNOPSIS


ar −d [−v] lưu trữ hồ sơ...

ar −m [−v] lưu trữ hồ sơ...
ar −m −a [−v] biệt danh lưu trữ hồ sơ...
ar −m −b [−v] biệt danh lưu trữ hồ sơ...
ar −m −i [−v] biệt danh lưu trữ hồ sơ...

ar −p [−v] [−s] lưu trữ [hồ sơ...]

ar −q [−cv] lưu trữ hồ sơ...

ar −r [−cuv] lưu trữ hồ sơ...

ar −r −a [−cuv] biệt danh lưu trữ hồ sơ...
ar −r −b [−cuv] biệt danh lưu trữ hồ sơ...
ar −r −i [−cuv] biệt danh lưu trữ hồ sơ...

ar −t [−v] [−s] lưu trữ [hồ sơ...]

ar −x [−v] [−sCT] lưu trữ [hồ sơ...]

MÔ TẢ


Sản phẩm ar tiện ích là một phần của tùy chọn Tiện ích phát triển phần mềm.

Sản phẩm ar tiện ích có thể được sử dụng để tạo và duy trì các nhóm tệp được kết hợp thành một
lưu trữ. Khi một kho lưu trữ đã được tạo, các tệp mới có thể được thêm vào và các tệp hiện có trong
một kho lưu trữ có thể được trích xuất, xóa hoặc thay thế. Khi một kho lưu trữ hoàn toàn bao gồm
các tệp đối tượng hợp lệ, việc triển khai sẽ định dạng tệp lưu trữ để nó có thể được sử dụng như một
thư viện để chỉnh sửa liên kết (xem c99pháo đài77). Khi một số tệp được lưu trữ không
các tệp đối tượng hợp lệ, tính phù hợp của kho lưu trữ đối với việc sử dụng thư viện là không xác định. Nếu một
kho lưu trữ bao gồm hoàn toàn các tệp có thể in được, toàn bộ tệp lưu trữ sẽ có thể in được.

Thời Gian ar tạo một kho lưu trữ, nó tạo ra thông tin quản trị cho biết liệu một
bảng ký hiệu có trong kho lưu trữ. Khi có ít nhất một tệp đối tượng ar
công nhận như vậy trong kho lưu trữ, một bảng ký hiệu kho lưu trữ sẽ được tạo trong kho lưu trữ
và được duy trì bởi ar; nó được trình chỉnh sửa liên kết sử dụng để tìm kiếm kho lưu trữ. Bất cứ khi nào ar
tiện ích được sử dụng để tạo hoặc cập nhật nội dung của kho lưu trữ đó, bảng ký hiệu
sẽ được xây dựng lại. Các −s tùy chọn sẽ buộc bảng ký hiệu được xây dựng lại.

Tất cả hồ sơ toán hạng có thể là tên đường dẫn. Tuy nhiên, các tệp trong kho lưu trữ sẽ được đặt tên bởi
tên tệp, là thành phần cuối cùng của tên đường dẫn được sử dụng khi tệp được nhập vào
kho lưu trữ. Sự so sánh của hồ sơ toán hạng đối với tên của các tệp trong kho lưu trữ sẽ là
được thực hiện bằng cách so sánh thành phần cuối cùng của toán hạng với tên của tệp trong
kho lưu trữ.

Không xác định được liệu nhiều tệp trong kho lưu trữ có thể được đặt tên giống nhau hay không. bên trong
trường hợp của các tệp như vậy, tuy nhiên, mỗi hồ sơbiệt danh toán hạng sẽ chỉ khớp với tệp đầu tiên
trong kho lưu trữ có tên giống với thành phần cuối cùng của toán hạng.

LỰA CHỌN


Sản phẩm ar tiện ích sẽ phù hợp với khối lượng Định nghĩa cơ sở của POSIX.1‐2008, Phần 12.2,
Tiện ích cú pháp Hướng dẫn, ngoại trừ Hướng dẫn 9.

Các tùy chọn sau sẽ được hỗ trợ:

−a Định vị các tệp mới trong kho lưu trữ sau tệp được đặt tên bởi biệt danh toán hạng.

−b Định vị các tệp mới trong kho lưu trữ trước tệp được đặt tên bởi biệt danh toán hạng.

−c Loại bỏ thông báo chẩn đoán được ghi thành lỗi chuẩn theo mặc định
khi kho lưu trữ lưu trữ được tạo ra.

−C Ngăn không cho các tệp được trích xuất thay thế các tệp có tên giống trong hệ thống tệp. Điều này
tùy chọn hữu ích khi −T cũng được sử dụng để ngăn các tên tệp bị cắt ngắn
thay thế các tệp có cùng tiền tố.

−d Xóa một hoặc nhiều hồ sơs từ lưu trữ.

−i Định vị các tệp mới trong kho lưu trữ trước tệp trong kho lưu trữ có tên
biệt danh toán hạng (tương đương với −b).

−m Di chuyển các tệp được đặt tên trong kho lưu trữ. Các −a, −b, hoặc là −i các tùy chọn với biệt danh
toán hạng chỉ ra vị trí; nếu không, hãy di chuyển các tệp tên trong kho lưu trữ đến
phần cuối của kho lưu trữ.

−p Viết nội dung của hồ sơs trong kho lưu trữ được đặt tên bởi hồ sơ toán hạng từ
lưu trữ đến đầu ra tiêu chuẩn. Nếu không hồ sơ toán hạng được chỉ định, nội dung
của tất cả các tệp trong kho lưu trữ sẽ được viết theo thứ tự của kho lưu trữ.

−q Nối các tệp đã đặt tên vào cuối tệp lưu trữ. Trong trường hợp này ar không kiểm tra
cho dù các tệp được thêm vào đã có trong kho lưu trữ hay chưa. Điều này rất hữu ích để bỏ qua
việc tìm kiếm được thực hiện theo cách khác khi tạo một kho lưu trữ lớn từng mảnh.

−r Thay thế hoặc thêm hồ sơs để lưu trữ. Nếu kho lưu trữ được đặt tên bởi lưu trữ không
tồn tại, một kho lưu trữ mới sẽ được tạo và một thông báo chẩn đoán sẽ được viết
thành lỗi tiêu chuẩn (trừ khi −c tùy chọn được chỉ định). Nếu không hồ sơs được chỉ định
lưu trữ tồn tại, kết quả là không xác định. Các tệp thay thế hiện có
các tệp trong kho lưu trữ sẽ không thay đổi thứ tự của kho lưu trữ. Tệp làm
không thay thế các tệp hiện có trong kho lưu trữ sẽ được thêm vào kho lưu trữ
trừ khi một −a, −b, hoặc là −i tùy chọn chỉ định một vị trí khác.

−s Buộc tái tạo bảng ký hiệu lưu trữ ngay cả khi ar không được gọi
với một tùy chọn sửa đổi nội dung lưu trữ. Tùy chọn này hữu ích để
khôi phục bảng ký hiệu kho lưu trữ sau khi nó đã bị tước bỏ; Thấy chưa dải.

−t Viết mục lục của lưu trữ đến đầu ra tiêu chuẩn. Chỉ các tệp
được chỉ định bởi hồ sơ toán hạng sẽ được đưa vào danh sách bằng văn bản. Nếu không hồ sơ
toán hạng được chỉ định, tất cả các tệp trong lưu trữ sẽ được bao gồm theo thứ tự
kho lưu trữ.

−T Cho phép cắt bớt tên tệp của các tệp đã trích xuất có tên tệp lưu trữ dài hơn
hệ thống tệp có thể hỗ trợ. Theo mặc định, giải nén một tệp có tên là
quá lâu sẽ là một lỗi; một thông báo chẩn đoán sẽ được viết và tệp
sẽ không được trích xuất.

−u Cập nhật các tệp cũ hơn trong kho lưu trữ. Khi được sử dụng với −r tùy chọn, các tệp trong
kho lưu trữ sẽ chỉ được thay thế nếu hồ sơ có một thời gian sửa đổi
ít nhất là mới bằng thời gian sửa đổi của tệp trong kho lưu trữ.

−v Cung cấp đầu ra dài dòng. Khi được sử dụng với các ký tự tùy chọn −d, −r, hoặc là −x, viết một
mô tả chi tiết từng tệp về việc tạo và bảo trì kho lưu trữ
hoạt động, như được mô tả trong phần STDOUT.

Khi sử dụng với −p, ghi tên tệp trong kho lưu trữ theo tiêu chuẩn
xuất trước khi ghi tệp trong chính kho lưu trữ thành đầu ra tiêu chuẩn, như
được mô tả trong phần STDOUT.

Khi sử dụng với −t, bao gồm một danh sách dài thông tin về các tệp trong
lưu trữ, như được mô tả trong phần STDOUT.

−x Giải nén các tệp trong kho lưu trữ có tên hồ sơ toán hạng từ lưu trữ. Các
nội dung của kho lưu trữ sẽ không được thay đổi. Nếu không hồ sơ toán hạng được đưa ra, tất cả
các tập tin trong kho lưu trữ sẽ được trích xuất. Thời gian sửa đổi của mỗi tệp
trích xuất sẽ được đặt thành thời gian tệp được trích xuất từ ​​kho lưu trữ.

TOÁN HẠNG


Các toán hạng sau sẽ được hỗ trợ:

lưu trữ Tên đường dẫn của kho lưu trữ.

hồ sơ Tên đường dẫn. Chỉ thành phần cuối cùng sẽ được sử dụng khi so sánh với
tên của các tệp trong kho lưu trữ. Nếu hai hoặc nhiều hơn hồ sơ toán hạng có cùng cuối cùng
thành phần tên đường dẫn (basename), kết quả không xác định. Việc thực hiện
định dạng lưu trữ sẽ không cắt bớt tên tệp hợp lệ của tệp được thêm vào hoặc thay thế
trong kho lưu trữ.

biệt danh Tên của một tệp trong kho lưu trữ, được sử dụng để định vị tương đối; xem các tùy chọn −m
−r.

STDIN


Không được sử dụng.

ĐẦU VÀO CÁC TẬP TIN


Tệp lưu trữ được đặt tên bởi lưu trữ sẽ là một tệp ở định dạng được tạo bởi ar −r.

MÔI TRƯỜNG BIẾN


Các biến môi trường sau đây sẽ ảnh hưởng đến việc thực hiện ar:

NGÔN NGỮ Cung cấp giá trị mặc định cho các biến quốc tế hóa chưa được đặt hoặc
vô giá trị. (Xem tập Định nghĩa cơ bản của POSIX.1‐2008, Phần 8.2,
quốc tế hóa Biến ưu tiên quốc tế hóa
các biến được sử dụng để xác định giá trị của danh mục ngôn ngữ.)

LC_ALL Nếu được đặt thành giá trị chuỗi không trống, hãy ghi đè giá trị của tất cả các chuỗi khác
các biến quốc tế hóa.

LC_CTYPE Xác định ngôn ngữ để diễn giải chuỗi byte dữ liệu văn bản
dưới dạng ký tự (ví dụ: byte đơn trái ngược với ký tự nhiều byte trong
đối số và tệp đầu vào).

LC_MESSAGES
Xác định ngôn ngữ sẽ được sử dụng để ảnh hưởng đến định dạng và nội dung của
thông báo chẩn đoán được ghi vào lỗi tiêu chuẩn.

LC_TIME Xác định định dạng và nội dung cho chuỗi ngày và giờ được viết bởi ar −tv.

NLSPATH Xác định vị trí của danh mục thư để xử lý LC_MESSAGES.

TMPDIR Xác định tên đường dẫn ghi đè thư mục mặc định cho các tệp tạm thời,
nếu có.

TZ Xác định múi giờ được sử dụng để tính toán chuỗi ngày và giờ được viết bởi ar
−tv. Nếu TZ không được đặt hoặc không, một múi giờ mặc định không xác định sẽ được sử dụng.

BẤT NGỜ SỰ KIỆN


Mặc định.

GIỚI THIỆU


Nếu −d tùy chọn được sử dụng với −v tùy chọn, định dạng đầu ra tiêu chuẩn sẽ là:

"d - % s \ n ", <hồ sơ>

Ở đâu hồ sơ là toán hạng được chỉ định trên dòng lệnh.

Nếu −p tùy chọn được sử dụng với −v Tùy chọn, ar sẽ đặt trước nội dung của mỗi tệp
với:

"\ n <% s> \ n \ n", <hồ sơ>

Ở đâu hồ sơ là toán hạng được chỉ định trên dòng lệnh, nếu hồ sơ toán hạng đã được chỉ định,
và tên của tệp trong kho lưu trữ nếu chúng không có.

Nếu −r tùy chọn được sử dụng với −v tùy chọn:

* Nếu như hồ sơ đã có trong kho lưu trữ, định dạng đầu ra tiêu chuẩn sẽ là:

"r - % s \ n ", <hồ sơ>

ở đâuhồ sơ> là toán hạng được chỉ định trên dòng lệnh.

* Nếu như hồ sơ chưa có trong kho lưu trữ, định dạng đầu ra tiêu chuẩn sẽ là:

"a - % s \ n ", <hồ sơ>

ở đâuhồ sơ> là toán hạng được chỉ định trên dòng lệnh.

Nếu −t tùy chọn được sử dụng, ar sẽ ghi tên của các tệp trong kho lưu trữ vào
đầu ra tiêu chuẩn ở định dạng:

"% s \ n", <hồ sơ>

Ở đâu hồ sơ là toán hạng được chỉ định trên dòng lệnh, nếu hồ sơ toán hạng đã được chỉ định,
hoặc tên của tệp trong kho lưu trữ nếu chúng không có.

Nếu −t tùy chọn được sử dụng với −v tùy chọn, định dạng đầu ra tiêu chuẩn sẽ là:

"%NS % u /% u %u %s %d % d:% d %d % s \ n ", <hội viên chế độ>,người sử dụng ID>,
<nhóm ID>,con số of byte in hội viên>,
<viết tắt tháng>,ngày trong tháng>,giờ>,
<phút>,năm>,hồ sơ>

Trong đó:

<hồ sơ> Sẽ là toán hạng được chỉ định trên dòng lệnh, nếu hồ sơ toán hạng là
được chỉ định hoặc tên của tệp trong kho lưu trữ nếu chúng không có.

<hội viên chế độ>
Sẽ được định dạng giống nhưhồ sơ chế độ> chuỗi được xác định trong STDOUT
phần ls, ngoại trừ ký tự đầu tiên,nhập kiểu>, không được sử dụng;
chuỗi đại diện cho chế độ tệp của tệp trong kho lưu trữ tại thời điểm nó
đã được thêm vào hoặc thay thế trong kho lưu trữ.

Phần sau thể hiện thời gian sửa đổi cuối cùng của một tệp khi nó là lần gần đây nhất
được thêm vào hoặc thay thế trong kho lưu trữ:

<viết tắt tháng>
Tương đương với định dạng của %b định dạng đặc điểm kỹ thuật chuyển đổi trong ngày.

<ngày trong tháng>
Tương đương với định dạng của %e định dạng đặc điểm kỹ thuật chuyển đổi trong ngày.

<giờ> Tương đương với định dạng của %H định dạng đặc điểm kỹ thuật chuyển đổi trong ngày.

<phút> Tương đương với định dạng của %M định dạng đặc điểm kỹ thuật chuyển đổi trong ngày.

<năm> Tương đương với định dạng của %Y định dạng đặc điểm kỹ thuật chuyển đổi trong ngày.

Thời Gian LC_TIME không chỉ định ngôn ngữ POSIX, một định dạng và thứ tự khác
việc trình bày các trường này liên quan đến nhau có thể được sử dụng ở định dạng thích hợp trong
ngôn ngữ được chỉ định.

Nếu −x tùy chọn được sử dụng với −v tùy chọn, định dạng đầu ra tiêu chuẩn sẽ là:

"x - % s \ n ", <hồ sơ>

Ở đâu hồ sơ là toán hạng được chỉ định trên dòng lệnh, nếu hồ sơ toán hạng đã được chỉ định,
hoặc tên của tệp trong kho lưu trữ nếu chúng không có.

STDERR


Lỗi chuẩn chỉ được sử dụng cho các thông báo chẩn đoán. Thông báo chẩn đoán
về việc tạo một kho lưu trữ mới khi −c không được chỉ định sẽ không sửa đổi trạng thái thoát.

OUTPUT CÁC TẬP TIN


Tài liệu lưu trữ là các tệp có định dạng không xác định.

ĐA THẾ HỆ MÔ TẢ


Không có.

EXIT TÌNH TRẠNG


Các giá trị thoát sau sẽ được trả về:

0 Hoàn thành thành công.

> 0 Đã xảy ra lỗi.

HẬU QUẢ OF LRI


Mặc định.

Sản phẩm tiếp theo phần đang nhiều thông tin.

ỨNG DỤNG SỬ DỤNG


Không có.

VÍ DỤ


Không có.

CƠ SỞ LÝ LUẬN


Định dạng lưu trữ không được mô tả. Người ta công nhận rằng có một số ar
các định dạng không tương thích. Các ar Tuy nhiên, tiện ích được bao gồm để cho phép tạo
kho lưu trữ chỉ được sử dụng trên một máy. Kho lưu trữ được chỉ định là
và nó có thể được di chuyển dưới dạng tệp. Điều này cho phép một kho lưu trữ được di chuyển từ một
máy này sang máy khác sử dụng cùng cách triển khai ar.

Các tiện ích như khách (và tổ tiên của nó tarcpio) cũng cung cấp `` kho lưu trữ '' di động.
Đây không phải là một sự trùng lặp; các ar tiện ích được bao gồm để cung cấp một giao diện chủ yếu
cho làm cho và các trình biên dịch, dựa trên một mô hình lịch sử.

Trong quá trình triển khai lịch sử, −q tùy chọn (có sẵn trên các hệ thống tuân theo XSI) là
được biết là thực thi nhanh chóng bởi vì ar không kiểm tra xem các thành viên được thêm vào có
đã có trong kho lưu trữ. Điều này rất hữu ích để bỏ qua tìm kiếm được thực hiện nếu không
tạo một kho lưu trữ lớn từng mảnh. Những nhận xét này có thể nhưng không cần thiết vẫn đúng đối với
triển khai hoàn toàn mới của tiện ích này; do đó, những nhận xét này đã được chuyển vào
CƠ SỞ LÝ LUẬN.

Việc triển khai BSD trước đây được yêu cầu các ứng dụng để cung cấp −s tùy chọn bất cứ khi nào
kho lưu trữ phải chứa một bảng ký hiệu. Như trong tập POSIX.1‐2008 này,
Trước đây, System V tạo hoặc cập nhật một bảng ký hiệu lưu trữ bất cứ khi nào một tệp đối tượng
được xóa khỏi, thêm vào hoặc cập nhật trong kho lưu trữ.

Phần OPERANDS yêu cầu những gì có vẻ đúng mà không chỉ định nó:
kho lưu trữ không thể cắt ngắn các tên tệp bên dưới {NAME_MAX}. Một số triển khai lịch sử
làm như vậy, tuy nhiên, gây ra kết quả không mong muốn cho ứng dụng. Do đó, tập này của
POSIX.1‐2008 đưa ra yêu cầu rõ ràng để tránh hiểu lầm.

Theo tài liệu Hệ thống V, các tùy chọn −dmpqrtx không bắt buộc phải bắt đầu
với một ('-'). Khối lượng này của POSIX.1‐2008 yêu cầu một ứng dụng phù hợp
sử dụng hàng đầu .

Định dạng lưu trữ được sử dụng bởi việc triển khai 4.4 BSD được ghi lại trong RATIONALE này là
một ví dụ:

Một tệp được tạo bởi ar bắt đầu bằng chuỗi `` ma thuật '' "! \n". Phân con lại của
kho lưu trữ được tạo thành từ các đối tượng, mỗi đối tượng bao gồm một tiêu đề cho một tệp,
tên tệp có thể có và nội dung tệp. Tiêu đề có thể di động giữa các máy
kiến trúc, và nếu nội dung tệp có thể in được, thì kho lưu trữ chính là
có thể in được.

Tiêu đề được tạo thành từ sáu trường ASCII, theo sau là đoạn giới thiệu hai ký tự. Các
các trường là tên đối tượng (16 ký tự), thời gian sửa đổi cuối cùng của tệp (12
ký tự), người dùng và ID nhóm (mỗi 6 ký tự), chế độ tệp (8
ký tự) và kích thước tệp (10 ký tự). Tất cả các trường số đều ở dạng thập phân,
ngoại trừ chế độ tệp ở dạng bát phân.

Thời gian sửa đổi là tệp thời gian cánh đồng. Người dùng và ID nhóm là
hồ sơ st_uidst_gid lĩnh vực. Chế độ tệp là tệp chế độ st_mode cánh đồng. Tập tin
kích thước là tệp cỡ_st_size cánh đồng. Đoạn giới thiệu hai byte là chuỗi " ".

Chỉ trường tên mới có bất kỳ điều khoản nào cho trường hợp tràn. Nếu bất kỳ tên tệp nào nhiều hơn 16
ký tự dài hoặc chứa một không gian nhúng, chuỗi "# 1 /" tiếp theo
độ dài ASCII của tên được viết trong trường tên. Kích thước tệp (được lưu trữ
trong tiêu đề kho lưu trữ) được tăng theo độ dài của tên. Tên sau đó là
được viết ngay sau tiêu đề kho lưu trữ.

Bất kỳ ký tự không sử dụng nào trong bất kỳ trường nào trong số này đều được viết dưới dạng nhân vật. Nếu như
bất kỳ trường nào là số lượng ký tự tối đa cụ thể của chúng, không có
ngăn cách giữa các lĩnh vực.

Các đối tượng trong kho lưu trữ luôn có độ dài là một số byte chẵn; các tệp là một
số byte dài lẻ được đệm bằng , mặc dù kích thước trong
tiêu đề không phản ánh điều này.

Sản phẩm ar mô tả tiện ích yêu cầu điều đó (khi tất cả các thành viên của nó là tệp đối tượng hợp lệ) ar
tạo ra một thư viện mã đối tượng, mà trình soạn thảo liên kết có thể sử dụng để trích xuất đối tượng
các mô-đun. Nếu trình chỉnh sửa liên kết cần một bảng ký hiệu để cho phép truy cập ngẫu nhiên vào
lưu trữ, ar phải cung cấp nó; Tuy nhiên, ar không yêu cầu một bảng ký hiệu.

BSD −o tùy chọn đã bị bỏ qua. Nó là một ứng dụng phù hợp hiếm hoi sử dụng ar để giải nen
mã đối tượng từ một thư viện với mối quan tâm về thời gian sửa đổi của nó, vì điều này chỉ có thể là
tầm quan trọng đối với làm cho. Do đó, vì chức năng này không được coi là quan trọng đối với
tính di động của ứng dụng, thời gian sửa đổi của các tệp trích xuất được đặt thành
thời điểm hiện tại.

Có ít nhất một cách triển khai đã biết (đối với một máy tính nhỏ) có thể chứa
chỉ các tệp đối tượng cho hệ thống đó, không cho phép đối tượng hỗn hợp và các tệp khác. Khả năng
xử lý bất kỳ loại tệp nào không chỉ là thông lệ lịch sử đối với hầu hết các triển khai, mà
cũng là một kỳ vọng hợp lý.

Việc thay đổi định dạng đầu ra của ar −tv sang cùng một định dạng với
đầu ra của ls −l. Điều này sẽ làm cho phân tích cú pháp đầu ra của ar giống như của ls.
Điều này đã bị từ chối một phần vì hiện tại ar định dạng thường được sử dụng và các thay đổi sẽ
phá vỡ cách sử dụng lịch sử. Thứ hai, ar cung cấp ID người dùng và ID nhóm ở định dạng số
ngăn cách bởi một . Thay đổi điều này thành tên người dùng và tên nhóm sẽ không được
đúng nếu tệp lưu trữ được chuyển đến một máy có cơ sở dữ liệu người dùng khác.
từ ar không thể biết liệu tệp lưu trữ có được tạo trên cùng một máy hay không, nó không thể biết
báo cáo những gì.

Văn bản trên − của bạn kết hợp tùy chọn là thông lệ lịch sử — vì một tên tệp có thể
dễ dàng đại diện cho hai tệp khác nhau (ví dụ: / a / foo/ b / foo), nó là hợp lý để
thay thế tệp trong kho lưu trữ ngay cả khi thời gian sửa đổi trong kho lưu trữ là
giống như trong hệ thống tệp.

TƯƠNG LAI HƯỚNG DẪN


Không có.

Sử dụng arposix trực tuyến bằng các dịch vụ onworks.net



Các chương trình trực tuyến Linux & Windows mới nhất