-2
我有在C.我也做的外殼(UNIX)以下的「Hello World」程序代碼hello.c:不明白爲什麼我得到一個權限被拒絕錯誤
$ ls > 1
$ chmod 0 1
$ cc -o hello hello.c
$ chmod 400 hello
$ ./hello > 1
並且我在1上拒絕了權限。
爲什麼我沒有在hello上獲得權限被拒絕的錯誤?
我有在C.我也做的外殼(UNIX)以下的「Hello World」程序代碼hello.c:不明白爲什麼我得到一個權限被拒絕錯誤
$ ls > 1
$ chmod 0 1
$ cc -o hello hello.c
$ chmod 400 hello
$ ./hello > 1
並且我在1上拒絕了權限。
爲什麼我沒有在hello上獲得權限被拒絕的錯誤?
因爲當您要求shell執行命令的輸出重定向時,要寫入的文件由外殼打開,在之前調用該命令。
你的shell會:
1
寫./hello
stdout
到1
./hello
1
有權限0o000
,所以第一個操作將失敗。
非常感謝。現在很明顯。 – Mickey
提示:'chmod 0 1' –
是的,但hello上的400的chmod會阻止其執行權限。那麼最先發生什麼?你好運行1的權限? – Mickey
證據表明什麼? –