Sau khi tìm kiếm, có vẻ như ascii của EOF là -1
, nhưng làm thế nào tôi có thể echo
hiểu được?
Mục đích của tôi để làm điều này là để kiểm tra xem nó có hoạt động giống như nhấn hay ctrl-d
không nếu tôi echo
ra ngoài EOF
.
Sau khi tìm kiếm, có vẻ như ascii của EOF là -1
, nhưng làm thế nào tôi có thể echo
hiểu được?
Mục đích của tôi để làm điều này là để kiểm tra xem nó có hoạt động giống như nhấn hay ctrl-d
không nếu tôi echo
ra ngoài EOF
.
Câu trả lời:
Không có cách nào để lặp lại EOF. Một EOF chỉ có thể được tạo bằng cách đến cuối tệp hoặc bằng cách gọi phím nhấn được gắn vào eof
cài đặt đầu cuối ( CtrlDtheo mặc định) khi tệp đang đọc được gắn vào đầu cuối.
int
giá trị -1 (hoặc 4294967295 nếu chúng tôi xem xét phiên bản không dấu) dù sao cũng không thể là một ký tự vì các ký tự chỉ có thể có giá trị từ 0 đến 255.
int
ở nơi đầu tiên?
fgetc(3)
trang đàn ông.
Trong bash, bạn có thể viết exec 1>&-
để đóng bộ mô tả tệp được gọi là thiết bị xuất chuẩn.
Như Ignacio đã nói, EOF không phải là một nhân vật, vì vậy câu hỏi làm thế nào để "lặp lại EOF" không có ý nghĩa gì ngay từ đầu. Bạn có thể lặp lại các ký tự (byte) hoặc bạn có thể đóng bộ mô tả tệp, nhưng bạn không bao giờ có thể lặp lại EOF.
EOF
được định nghĩa như-1
trong stdio.h? Tại sao chúng ta không thể lặp lại nếu chúng ta biết giá trị ascii của nó?