2015-05-22 12 views
5

Trong khi học C, tôi đã nhận ra rằng bạn có thể thấy hướng dẫn về các chức năng của nó trong vỏ linux (tôi đã sử dụng BASH). Ví dụ:Làm thế nào để chạy các hàm C trong trình bao?

man strlen 
man crypt 
man printf 

Tôi đã hình dung rằng có thể tôi có thể sử dụng các hàm đó trong kịch bản lệnh shell.

Điều này có đúng không? Làm cách nào để sử dụng các hàm đó trong tập lệnh shell?

+1

'man' có nhiều hơn chỉ là các trang trình đơn lệnh shell; thực tế là một cái gì đó có một trang người đàn ông không có nghĩa là một vỏ sẽ hiểu nó. – user2357112

+0

Tôi thấy .. tốt, tôi nghĩ rằng cách duy nhất để sử dụng nó là để biên dịch chương trình C của riêng bạn. Bởi vì tôi đã dựa vào các trang 'man' vào những ngày này, nó cho tôi ý tưởng rằng mọi thứ có các trang' man' có thể được thực thi trên trình bao. Tôi đoán đây không phải là trường hợp đó. Cảm ơn câu trả lời của bạn. –

Trả lời

3

Bạn không thể. Manpages là một di tích của một thời gian khi không có IDE, và không có Web để tìm kiếm những thứ. Bạn sẽ viết mã của bạn trong một trình soạn thảo như ed hoặc vim hoặc emacs, tra cứu chức năng với man, biên dịch với cc. Thực tế là lệnh man tra cứu các hàm C không có nghĩa là bạn có thể sử dụng các hàm đó trực tiếp trong trình bao.

Tuy nhiên, một số hàm đó cũng có giá trị tương đương trong * NIX: man 3 printf là hàm C, nhưng man 1 printf là một * NIX.

+0

Đúng. Điều này sẽ đủ. Cảm ơn bạn đã biết. –

+0

Và cơ bản cho 'ln' thực hiện lời gọi hệ thống' link() ', và biểu mẫu' ln -s' thực hiện lời gọi hệ thống 'symlink()', và dạng cơ bản của 'mkdir' thực hiện' mkdir () 'gọi hệ thống và dạng cơ bản của' rmdir' thực hiện cuộc gọi hệ thống 'rmdir()' (mặc dù trong trường hợp 'mkdir' và' rmdir', các cuộc gọi hệ thống mới hơn nhiều so với các lệnh). Và cứ thế. Nhiều lệnh trong số các lệnh này là các bìa đơn giản cho các cuộc gọi hệ thống, ít nhất là trong hóa thân cơ bản của chúng. Và với Bash, bạn có thể lấy chiều dài của một chuỗi với '$ {# var}', ví dụ. –

2

Câu trả lời ngắn gọn là, bạn không thể sử dụng các hàm từ thư viện C trực tiếp trong trình bao.

Nhìn vào các trang người đàn ông khác nhau mà bạn nhận được với các lệnh sau:

man 1 printf 
man 3 printf 

Người đầu tiên xuất phát từ phần 1 (lệnh của người dùng), và một trong những thứ hai xuất phát từ phần 3 (C thư viện). Trong khi họ phục vụ một mục đích tương tự, họ không giống nhau. Bạn có thể sử dụng printf được mô tả trong phần 1 trực tiếp trong trình bao. Hãy xem man 7 man để xem danh sách các phần khác nhau.

+0

OK. Và phần 'section' trên 'man 7 man' chuyển hướng tôi đến' man 7 man-pages'. Tôi sẽ đặt nó ở đây như một lời nhắc nhở. Cảm ơn bạn đã dành thời gian và nỗ lực của bạn. –

Các vấn đề liên quan