I am using gcc 12.1 on NetBSD 9.3 amd64 in a c++ application that complies using standard std20.
There is this c++ standard library class ifstream. Using method ifstream::open files are opened. So far I was under an impression that on BSDs / Linux / Unix like systems there is no need to explicitly pass the "b" option ( ifstream::binary in case of above API ) and that such option is required only on DOS / Windows systems. But I found that without this option, on above setup, the things were not working (weird results you'd expect with implicit character conversions). Using above option solves the problem. On NetBSD, the fopen man page clearly says 'b' is ignored. So wonder if gcc layer introduces the need to use it in above usage pattern. A bit surprised by this behavior. Comments please. -- Mayuresh