मैं इस सरल कोड में अगले अंक में पता चला पुनः निर्देशित stdin:OCaml: Unix.getlogin साथ अनपेक्षित अपवाद जब
let() =
print_endline "Hello";
print_endline (Unix.getlogin())
सामान्य स्थिति में चल रहा है, ./a.out
साथ देता है:
Hello
ricardo
लेकिन ./a.out </dev/null
की तरह चल रहा है Unix.getlogin असफल:
Hello
Fatal error: exception Unix.Unix_error(20, "getlogin", "")
किसी भी आईडी और ऐसा क्यों होता है?
मैंने अभी अपने सिस्टम पर यह कोशिश की: मैक ओएस एक्स 10.6.8/ओकैमल 3.12.0 और मुझे समस्या दिखाई नहीं दे रही है। दोनों मामलों में उत्पादन समान है। आपका सिस्टम क्या है? –
लिनक्स, मैंने फिर से आदमी 3 getlogin पढ़ा है और मैंने stdin को पुनर्निर्देशित करने के बारे में glibc में "बग" देखा है: -/ – Ricardo
हां, bkconrad इसे नकली! –