首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言問答

C語言文件名大小寫敏感性:由操作系統決定,非語言特性

     編輯:C 語言問答

核心結論

C 語言標準不規定文件名大小寫敏感性,完全委託給底層操作系統文件系統。

主流平台行為

平台文件系統大小寫敏感備註
WindowsNTFS/FAT32/exFAT**不敏感** (Case-insensitive)但保留大小寫 (Case-preserving)
Linuxext4/xfs/btrfs**敏感** (Case-sensitive)file.c ≠ File.c
macOSAPFS/HFS+**默認不敏感** (可格式化為敏感)APFS 支持區分大小寫卷
嵌入式FatFS/LittleFS/YAFFS通常不敏感視配置而定

跨平台編程最佳實踐

  1. 統一命名規範:全項目強制小寫 + 下劃線 my_module.c,CMakeLists.txt 同步;
  2. 頭文件包含用實際大小寫:#include "MyModule.h" 而非 #include "mymodule.h",避免 Linux 編譯失敗;
  3. 構建系統規範路徑:CMake file(GLOB SRCS "src/*.c") 依賴文件系統遍歷順序,建議顯式列出;
  4. CI/CD 強制檢查:Git pre-commit hook 運行 git ls-files | awk '/[A-Z]/ {print "大小寫違規: " $0}'。

驗證腳本


#!/bin/bash
# check_case_sensitive.sh
find . -name "*.c" -o -name "*.h" | while read f; do
    lower=$(echo "$f" | tr '[:upper:]' '[:lower:]')
    if [ "$f" != "$lower" ]; then
        echo "WARNING: $f contains uppercase"
    fi
done
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved