Mã nguồn triển khai `scanf` ở đâu?


8

Tôi muốn tìm mã nguồn C để scanfthực hiện trên máy Linux. Googling để tìm scanftriển khai không cho tôi biết cách để tìm thấy nó. Tôi đã cố gắng tìm mã nguồn đó từ gcccây nguồn bằng cách sử dụng ctagscscope, nhưng tôi không thể tìm thấy nó. Ai đó có thể vui lòng cho tôi biết scanfđịnh nghĩa hàm ở đâu , tức là mã nguồn thực hiện không?


Bạn thường có thể có được thông tin này trực tiếp thông qua phân phối của bạn. Thật dễ dàng với Debian / Ubuntu chẳng hạn. Phân phối của bạn là gì?
Faheem Mitha

Đó là Ubuntu 12.04 LTS
freddy

Câu trả lời:


6

Nó nằm trong glibcthư viện nguồn scanf.c

glibclà viết tắt của Thư viện GNU C . Đây là một triển khai thư viện tiêu chuẩn C. Đây không phải là một phần của trình biên dịch, bởi vì bạn có thể có các triển khai khác nhau của nó (ví dụ như thời gian chạy của Microsoft C) cũng như các trình biên dịch khác nhau (như clang).


Cảm ơn bạn đã trả lời nhanh! bạn có thể giải thích rõ tại sao mã nguồn đó không được bao gồm (?) trong cây nguồn gcc của tôi không? Tôi không biết những gì glibc(hỗ trợ) cho chương trình hello_world của tôi.
freddy

1
Đây là thư viện chính của các hàm và định nghĩa cho các chương trình C. Nó chứa chức năng bạn đang tìm kiếmscanf()
X Tian

4
Chỉ cần giá trị chỉ ra rằng C khác thư viện tiêu chuẩn và do đó scanfviệc triển khai tồn tại là tốt, ví dụ như uClibc: github.com/ffainelli/uClibc/blob/master/libc/stdio/_scanf.c
PHK
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.