Kunci fail - C++ fstream membuka fail txt dalam mod ios::out|ios::in, tetapi Notepad boleh mengubah suai fail semasa program sedang berjalan?
世界只因有你
世界只因有你 2017-05-16 13:24:22
0
2
1046

C++ fstream membuka fail txt dalam mod ios::out|ios::in, tetapi Notepad boleh mengubah suai fail semasa program sedang berjalan

Nota: Untuk Win7 x64, akaun tersebut adalah Administrator Tiada UAC, jadi ia adalah terus pentadbir.

#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char const *argv[]) {
    fstream file("test.txt",ios::in|ios::out);
    file.open("test.txt",ios::in|ios::out);
    char c;
    cin>>c;
    while(c!='X'){
        cin>>c;
        cout<<"Get a :"<<c<<endl;
    }
    return 0;
}

Selepas mengklik OK: kotak dialog Simpan Sebagai akan muncul, dan hasilnya boleh ditimpa.

Program masih berjalan, tetapi fail telah diubah suai.

Pada asalnya, ia tidak boleh diubah suai terus menggunakan sublimetext, tetapi selepas beberapa kali bermain-main dengan Notepad, kini sublimetext juga boleh diubah suai.

Sila beritahu saya cara menghalang program lain daripada menulis dan memadam fail tertentu semasa program sedang berjalan, tetapi masih boleh membacanya

世界只因有你
世界只因有你

membalas semua(2)
我想大声告诉你

Mari kita bincangkan masalah anda dahulu: selepas Notepad menimpa fail lama, fail yang dibuka semasa proses adalah fail sebelumnya (fail sebelumnya masih ada, tetapi anda tidak dapat melihatnya), dan fail yang anda edit semula sudah ada fail baharu

Di Linux, kunci mandatori pun boleh dipintas dengan menyahpaut, jadi tiada cara untuk mengelakkan masalah ini di Linux,

API sistem di bawah Windows sepatutnya menyediakan fungsi tertentu, tetapi saya sangat mengetahuinya, kerana saya sering mendapati: "Fail ini diduduki oleh proses dan tidak boleh dipadam", tetapi saya tidak menolak sekatan ini

小葫芦

Soalan ini agak menarik Idea penyelesaian masalah boleh seperti berikut:

  1. Adakah ini masalah cache IO fail?
    Editor--Penimbal Sistem---Fail Entiti

  2. Adakah ini masalah kunci baca-tulis fail?
    (Saya nampak bahawa walaupun kod anda membuka fail dalam cara yang boleh dibaca dan ditulis dan mewujudkan persatuan, ia hanya menggunakan bacaan; kunci baca nampaknya tidak eksklusif)

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!