Selasa, 08 Mei 2012

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: , , ,

<< Beranda