Sự khác biệt chính xác giữa các hàm printk
và pr_info
là gì? Và theo những điều kiện nào, tôi có nên chọn cái nào khác không?Sự khác biệt giữa printk và pr_info
Trả lời
Các kernel's printk.h có:
#define pr_info(fmt,arg...) \
printk(KERN_INFO fmt,##arg)
Cũng giống như tên, pr_info là printk với ưu tiên KERN_INFO.
Khi tìm kiếm cụ thể tại pr_info
, định nghĩa sẽ lần lượt sử dụng printk(KERN_INFO ...
(như đã đề cập trong barcelona_delpy's answer); tuy nhiên, đoạn mã nguồn của câu trả lời dường như loại trừ trình bao bọc định dạng pr_fmt(fmt)
(như đã đề cập bởi LP comment).
Sự khác biệt tại sao bạn có thể sử dụng pr_info
qua printk(KERN_INFO ...
là tùy chỉnh định dạng bạn có thể thiết lập. Nếu bạn muốn tiền tố tin nhắn của bạn trong module của bạn với printk
, một phương pháp là thêm một cách rõ ràng tiền tố của bạn trên mỗi dòng:
printk(KERN_INFO "mymodule: hello there\n");
// outputs "mymodule: hello there"
hay:
printk(KERN_INFO KBUILD_MODNAME " hello there\n");
// outputs "mymodule: hello there"
Tuy nhiên, nếu bạn sử dụng pr_info
(và khác pr_*
chức năng), bạn có thể tái xác định định dạng và chỉ cần sử dụng pr_info
không có việc làm thêm:
... (includes)
#ifdef pr_fmt
#undef pr_fmt
#endif
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
...
{
...
pr_err("hello there\n");
// outputs "mymodule: hello there" (assuming module is named 'mymodule')
...
}
...
Xem thêm:
- 1. Sự khác biệt giữa $ (...) và `...`
- 2. Sự khác biệt giữa. và #
- 3. Sự khác biệt giữa $ * và $ @
- 4. Sự khác biệt giữa ". +" Và ". +?"
- 5. Sự khác biệt giữa "**/* /" và "** /"?
- 6. Sự khác biệt giữa $ # và $ {# @}
- 7. Sự khác biệt giữa = và: =
- 8. Sự khác biệt giữa sự khác biệt biểu tượng và sự khác biệt tự động?
- 9. Sự khác biệt giữa dmesg và /var/log/kern.log
- 10. Sự khác biệt về sự khác biệt giữa Matplotlib giữa Agg và Cairo
- 11. Sự khác biệt giữa sự khác biệt giữa nhiệm vụ jar và lắp ráp
- 12. Sự khác biệt giữa Html.RenderAction và Html.Action
- 13. Sự khác biệt giữa cookie và phiên?
- 14. Sự khác biệt giữa '.' và "." trong java
- 15. Sự khác biệt giữa SimpleDB và S3
- 16. C++ - Sự khác biệt giữa (*). và ->?
- 17. Sự khác biệt giữa offsetHeight và clientHeight
- 18. Sự khác biệt giữa RDLC và SSRS
- 19. Sự khác biệt giữa "\ n" và Environment.NewLine
- 20. Sự khác biệt giữa qt và PyQt4
- 21. Sự khác biệt giữa AForge và OpenCV
- 22. Sự khác biệt giữa toFixed() và toPrecision()?
- 23. sự khác biệt giữa cacao và cocoatouch
- 24. Sự khác biệt giữa smtpClient.send() và smtpClient.SendAsync()?
- 25. Sự khác biệt giữa window.location.host và window.location.hostname
- 26. Sự khác biệt giữa DTLS và TLS
- 27. Sự khác biệt giữa Mealy và Moore
- 28. sự khác biệt giữa createRfcommSocketToServiceRecord và createRfcommSocket
- 29. Sự khác biệt giữa Arrays.sort() và Arrays.parallelSort()
- 30. sự khác biệt giữa orm và pdo
@CL. Vâng, tệ lắm. – LPs
Tất cả những thứ này đều tương đương ngoại trừ một lỗi. – 0andriy