Cuộc gọi hệ thống chdir Linux trong C

Cuoc Goi He Thong Chdir Linux Trong C



Các thay đổi đối với thư mục làm việc hiện tại của thiết bị được thực hiện bằng phương pháp “CHDIR”. Trong nhiều trường hợp, bạn có thể quyết định thay đổi thư mục làm việc hiện tại trên thiết bị của mình. Hoặc bạn muốn chạy một tập lệnh C từ một thư mục thay vì thư mục làm việc hiện tại của bạn. Do đó, để chạy mã C cụ thể đó, bạn phải sửa đổi thư mục làm việc hiện tại của mình. Ngoài ra, phương pháp “getcwd” của ngôn ngữ mã hóa C có thể được sử dụng để nhanh chóng xác định thời điểm thư mục làm việc hiện tại đã thay đổi. Bây giờ, chúng ta sẽ sử dụng hàm chdir () của C trong bài viết này để thay đổi một thư mục đang làm việc.

Ví dụ 01:

Hãy bắt đầu với hoạt động của hàm chdir () của C trong hệ điều hành Linux. Đối với điều này, bạn phải chắc chắn rằng trình biên dịch của C đã được gắn ở cuối của bạn. Trong hầu hết các trường hợp, chúng tôi có xu hướng sử dụng trình biên dịch “gcc” của C trong hệ điều hành Kali Linux của chúng tôi. Để bắt đầu với ví dụ này, chúng ta phải có một tệp C với phần mở rộng là “c”. Chúng tôi đặt tên nó là p1.c và cố gắng mở nó bằng trình soạn thảo “nano” của Linux như được trình bày bên dưới.







Khi tệp của bạn được mở trong trình chỉnh sửa, bạn phải bắt đầu viết mã trong đó. Chúng tôi đã bắt đầu chương trình C của mình bằng cách thêm các thư viện tiêu đề chính của C là thư viện phải có trong bất kỳ chương trình C nào. Do đó, thư viện tiêu đề stdio.h và unistd.h được sử dụng để đảm bảo rằng đầu vào và đầu ra tiêu chuẩn có thể chảy trong chương trình. Tiêu đề unistd.h đã được sử dụng để sử dụng một số hàm tiêu chuẩn của C được yêu cầu đặc biệt cho ví dụ này. Bây giờ, chúng ta đã bắt đầu hàm trình điều khiển chính () của C trong đoạn mã này để chạy tự động khi thực thi. Biến mảng kiểu ký tự “đường dẫn” đã được xác định với kích thước là 100 vì nó chỉ lưu trữ 100 giá trị.



Câu lệnh hàm printf () đã được sử dụng để in ra thư mục thư mục làm việc hiện tại của tệp C này bằng cách sử dụng hàm “getcwd ()”. Hàm này sử dụng biến mảng “đường dẫn” với kích thước 100 để lấy thư mục làm việc hiện tại trong đó và chuyển nó vào câu lệnh hàm printf () để hiển thị. Bây giờ, đã đến lúc sử dụng hàm chdir (). Chúng ta có thể chuyển bất kỳ loại ký tự nào để chỉ định xem chúng ta muốn di chuyển về phía trước trong thư mục hay di chuyển theo hướng lùi lại trong cùng một thư mục.



Vì vậy, chúng tôi đã thử các ký tự “..” trong câu lệnh hàm chdir () để di chuyển từ thư mục làm việc hiện tại theo hướng ngược lại, tức là thấp hơn một cấp so với thư mục làm việc hiện tại. Lưu ý rằng ngay bây giờ, chúng tôi đang làm việc trong thư mục dự án của thư mục làm việc “Linux” chính của hệ thống Kali Linux. Bây giờ, chúng ta đang ở thư mục “Linux” thay vì thư mục “dự án” sau khi sử dụng hàm “chdir”. Bây giờ, chúng tôi đã thử câu lệnh hàm “printf ()” một lần nữa để hiển thị thư mục làm việc hiện tại bằng cách sử dụng hàm “getcwd” trong đó. Chương trình của chúng tôi kết thúc với câu lệnh trả về 0.





Sau khi lưu chương trình C này, chúng ta cần biên dịch nó bằng trình biên dịch “gcc” mà chúng ta đã cấu hình ở cuối. Sử dụng lệnh gcc này, chúng tôi đã tạo một tệp đối tượng của tệp C này có tên là “p1.out” bằng cách sử dụng tùy chọn –o như được hiển thị bên dưới.



Bây giờ, khi bạn chạy tệp đối tượng của nó trong thiết bị đầu cuối Linux, trước tiên bạn sẽ nhận được thư mục làm việc được chương trình sử dụng trước khi sử dụng hàm chdir (). Sau khi sử dụng hàm chdir (), chúng tôi chuyển đến một thư mục bên dưới và thư mục cụ thể đó “home” được hiển thị.

Ví dụ 02:



Sử dụng các thư viện tiêu đề giống nhau, chúng tôi đã bắt đầu mã chương trình này. Trong hàm main () của chương trình này, chúng tôi đã sử dụng câu lệnh “if” bằng cách sử dụng hàm chdir () trong đó.

Chức năng này sẽ kiểm tra xem “/ user” có tồn tại trong hệ thống hay không bằng cách đặt điều kiện “/ user! = 0”. Nếu thư mục không tồn tại trong hệ thống hiện tại, lệnh gọi hàm xử lý lỗi sẽ được sử dụng để hiển thị thông báo lỗi tương ứng, tức là “thư mục người dùng không tồn tại. Chúng tôi đã sử dụng một câu lệnh “if” khác bằng cách sử dụng hàm chdir () bên trong nó. Mục đích của việc sử dụng hàm chdir () ở đây cũng giống như chúng ta đã làm trong câu lệnh if ở trên, là để kiểm tra xem thư mục có tồn tại hay không bằng cách sử dụng điều kiện “/ temp”! = 0. Sự khác biệt duy nhất là việc sử dụng tên thư mục mới “/ temp” thay vì “/ user” như bạn có thể thấy từ hình ảnh mã bên dưới.







Nếu thư mục / temp không tồn tại trong hệ thống, hàm perror được sử dụng trong câu lệnh “if” sẽ đưa ra thông báo lỗi “thư mục / temp không tồn tại” như được hiển thị từ hình ảnh bên dưới. Sau khi sử dụng cả hai câu lệnh “if”, chúng tôi đã kết thúc đoạn mã này bằng câu lệnh C’s return 0. Bây giờ, chương trình đã kết thúc. Chúng tôi đã lưu mã C của mình bằng cách sử dụng phím tắt Ctrl + S trước khi thực thi.





Bây giờ tệp đã được lưu trong hệ thống của bạn, chúng tôi phải biên dịch mã C với trình biên dịch “gcc” mà chúng tôi đã gắn ở cuối. Sử dụng hướng dẫn này, chúng tôi đã tạo tệp đối tượng của nó “p2.out” bằng cách sử dụng tùy chọn –o trong hướng dẫn.





Sau khi thực thi tệp đối tượng đã tạo “p2.out” với các ký tự “./”, chúng tôi biết rằng cả hai thư mục được đề cập trong đường dẫn của “chdir” đều không tồn tại trong hệ thống hoặc lỗi hiển thị ở trình bao đã được chứng minh nó đúng cách.



Sự kết luận

Trong bài viết hôm nay, chúng tôi đã trình bày việc sử dụng hàm chdir () của C trong hệ điều hành Kali Linux. Ví dụ đầu tiên minh họa cách hàm chdir () có thể được sử dụng để thay đổi thư mục đang hoạt động, tức là di chuyển từ thư mục này sang thư mục khác. Ví dụ cuối cùng của C trình bày cách chúng ta có thể kiểm tra xem thư mục làm việc hiện tại được chỉ định trong đường dẫn của chdir () đã tồn tại hay chưa.