Tôi muốn sử dụng nftw để duyệt qua cấu trúc thư mục trong C.Cách tránh sử dụng biến toàn cục khi sử dụng nftw
Tuy nhiên, với những gì tôi muốn làm, tôi không thấy cách sử dụng biến toàn cầu.
Ví dụ về sách giáo khoa sử dụng (n) ftw đều liên quan đến việc thực hiện một việc gì đó như in ra tên tệp. Thay vào đó, tôi muốn lấy tên đường dẫn và kiểm tra tệp và đặt chúng trong cấu trúc dữ liệu. Nhưng tôi không thấy một cách tốt để làm điều đó, đưa ra những giới hạn về những gì có thể được thông qua để nftw.
Giải pháp tôi đang sử dụng liên quan đến biến toàn cục. Hàm được gọi bởi nftw sau đó có thể truy cập biến đó và thêm dữ liệu cần thiết.
Có cách nào hợp lý để thực hiện việc này mà không sử dụng biến toàn cầu không?
Tôi nhận thức được giá trị của việc tách biệt mã, vì thư viện BSD "libarchive" (mà tôi cũng đang sử dụng) được thiết lập theo cách đó. Nhưng nhận xét của bạn đã giúp củng cố vấn đề và tôi sẽ sử dụng từ khóa tĩnh hơn một cách tổng quát. (Sẽ upvote bạn nếu tôi có thể.) – user1071847
Bài viết [Pox on globals] (http://www.eetimes.com/discussion/break-point/4025723/A-pox-on-globals) Tôi đã liên kết trong bài đăng trước đó của bạn cũng thảo luận về kỹ thuật này. Bài viết đề cập đến các hệ thống nhúng, nhưng nó không ít được áp dụng cho máy tính mục đích chung. Tôi cũng đề nghị rằng C++ cung cấp cho bạn thêm cơ hội cho việc đóng gói dữ liệu tốt hơn bằng cách sử dụng các lớp và các không gian tên. Một số thận trọng về việc sử dụng tĩnh theo cách này, nó là tốt nếu bạn chỉ cần một ví dụ của dữ liệu, và nó kết quả trong mã không reentrant và không an toàn thread. Các giải pháp khác có thể áp dụng. – Clifford