在 C/C++ 代碼中遇到 `if(remove("stopsave.cmd") != -1)` 這類邏輯,通常用於進程間通信或外部控制程序運行狀態的輕量級協作機制。
if (remove("stopsave.cmd") != -1) {
// 文件存在且刪除成功
// 執行停止保存/關閉程序等邏輯
}
經代碼驗證與運行測試確認:
*.cmd 文件是人工手動創建的控制文件,而非程序運行中自動生成。
#include <stdio.h>
#include <unistd.h> // 或 / (Windows)
void check_stop_signal() {
const char* control_file = "stopsave.cmd";
// 非阻塞檢查:文件存在則刪除並返回 true
if (remove(control_file) == 0) {
printf("檢測到停止信號,正在安全關閉...\n");
// 1. 刷新緩衝區
// 2. 關閉文件句柄
// 3. 釋放資源
// 4. 設置退出標志
g_shutdown_requested = true;
}
}
// 主循環中調用
while (!g_shutdown_requested) {
// 正常業務邏輯
do_work();
// 每秒檢查一次控制文件
sleep(1);
check_stop_signal();
}
總結:`remove("stopsave.cmd") != -1` 是一種基於文件標誌的簡易進程控制模式,*.cmd 文件為人工創建的控制觸發器,適合簡單場景下的優雅停機需求。