Windows UAC dan Error "Bad File Number" di Bash
Lagi iseng coba jalanin file setup_driver.exe hasil compile di MSYS/MinGW,
eh tiba-tiba ketemu error aneh kayak gini:
sh: ./setup_driver.exe: Bad file number
Awalnya bikin bingung juga, padahal compile sukses.
Ternyata masalahnya ada di cara Windows nge-handle file executable
yang namanya ada kata setup-nya.
Jadi gini, Windows (lebih tepatnya UAC) punya kebiasaan khusus.
Kalau ada aplikasi yang namanya mengandung kata "setup" atau "install",
dia otomatis dianggap installer. Hasilnya, Windows coba ngejalanin file itu
dengan hak akses lebih tinggi (elevated mode), dan ini bikin shell di MSYS/MinGW bingung.
Makanya keluar error Bad file number.
Solusinya Gampang
Cukup ganti nama file kamu jadi sesuatu yang nggak ada kata setup
atau install-nya. Misalnya dari setup_driver.exe
jadi driver_tool.exe.
Setelah diganti, coba jalanin lagi dari bash. Harusnya udah normal dan errornya nggak muncul lagi.
Jadi intinya, masalah ini bukan di compile atau kodenya, tapi lebih ke “kebiasaan” Windows UAC yang ngira semua file setup itu installer.
Label: bad-file-number, setup, UAC, Windows
<< Beranda