面试题答案
一键面试package main
import (
"fmt"
"os"
"path/filepath"
"syscall"
)
func createFileWithPermissions(fileName string, permissions int) error {
// 校验文件名是否包含非法字符
if filepath.Separator == '/' && strings.Contains(fileName, `\`) ||
filepath.Separator == '\\' && strings.Contains(fileName, `/`) {
return fmt.Errorf("文件名包含非法字符")
}
// 校验权限值是否在合理范围内
if permissions < 0 || permissions > 777 {
return fmt.Errorf("权限值不在合理范围内")
}
// 使用syscall.Mkdir创建文件,这里示例用创建文件来展示权限设置,实际情况根据需求调整
err := syscall.Mkdir(fileName, syscall.ModePerm)
if err != nil {
return fmt.Errorf("创建文件失败: %v", err)
}
return nil
}
你可以这样调用这个函数:
func main() {
err := createFileWithPermissions("test.txt", 0755)
if err != nil {
fmt.Println(err)
}
}