Go에서 파일 실행 가능성 확인
Go에서는 파일 모드, 특히 권한 비트를 검사하여 파일이 실행 가능한지 여부를 확인할 수 있습니다. . 이 검사를 수행하는 함수를 구성하는 방법은 다음과 같습니다.
<code class="go">import ( "os" ) func IsExecutable(mode os.FileMode) bool { return mode&0111 != 0 }</code>
이 함수는 비트 AND 연산자(&)를 사용하여 파일 모드에서 가장 낮은 9개의 권한 비트(0777 8진수 비트마스크)를 추출합니다. 비트마스크 0111을 사용하면 파일의 권한 비트 중 실행을 위해 설정되어 있는지 확인할 수 있습니다. 비트가 설정된 경우 함수는 true를 반환합니다.
테스트 사례:
다음 테스트 사례를 고려하세요.
<code class="sh">#!/usr/bin/env bash ... # create test directory and files ... # set executable permission on quux.sh chmod +x test/foo/bar/quux.sh ...</code>
그리고 해당 Go 코드:
<code class="go">import ( "os" "path/filepath" "fmt" ) func main() { filepath.Walk("test", func(path string, info os.FileInfo, err error) error { if err != nil || info.IsDir() { return err } fmt.Printf("%v %v", path, IsExecutable(info.Mode())) } }</code>
이 코드를 실행하면 다음이 인쇄됩니다.
test/foo/bar/baz.txt false test/foo/bar/quux.sh true
이것은 테스트 케이스의 의도대로 quux.sh가 실행되는 동안 baz.txt는 실행 가능하지 않음을 확인합니다.
Windows 호환성
제공되는 솔루션은 Linux 및 macOS를 포함한 Unix 시스템에만 적용됩니다. Windows의 경우 os를 사용할 수 있습니다. 파일이 실행 가능한지 확인하는 실행 가능한 함수입니다. 그러나 os.Executable은 파일의 실제 실행 가능성이 아니라 파일에 ".exe" 확장자가 있는지 여부만 표시한다는 점은 주목할 가치가 있습니다.
위 내용은 Go에서 파일이 실행 가능한지 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!