2008-10-07 5 views
1

Как я могу программно заблокировать/разблокировать или иным образом предотвратить/включить редактирование исходного файла в Linux с помощью C++.Заблокировать/запретить редактирование исходных файлов в Linux с помощью C++

Я хочу, чтобы иметь возможность блокировать исходный файл, чтобы, если я его открываю в редакторе, он не позволит мне сохранять обратно в тот же исходный файл.

Я думаю о том, что я могу изменить права доступа только для чтения (и изменить его обратно на чтение-запись позже): как мне это сделать с C++?

+0

Be * бережный *. По-прежнему можно изменить файл, доступный только для чтения в редакторе. Например, vim делает это (но он спрашивает пользователя). Хитрость заключается в том, чтобы сначала удалить файл, а затем снова создать его. Это возможно, если у вас есть права на запись в каталог, содержащий файл. – ypnos 2008-10-07 23:25:41

+0

Некоторые редакторы скажут вам, если у вас уже открыт данный файл (например, gedit делает это) или заметите, что он уже открыт и просто держит оба окна/вкладки/все в синхронизации, поэтому, если вы редактируете файл в одном окне, он появляется в другом месте у вас есть это открытое (удобное для работы с длинными файлами) eclipse делает это (и, вероятно, большинство IDE) – Spudd86 2010-06-15 13:46:51

ответ

5

Try человек fchmod:

 
NAME 
     chmod, fchmod - change permissions of a file 

SYNOPSIS 
     #include <sys/types.h> 
     #include <sys/stat.h> 

     int chmod(const char *path, mode_t mode); 
     int fchmod(int fildes, mode_t mode); 
+0

спасибо ... это помогает узнать, где и что искать. мужчина, у меня есть много догоняющего! – slashmais 2008-10-07 09:14:31

1

Почему вы не используете исходный код инструмента управления как CVS или Subversion? CVS делает хорошую блокировку (так же делает Subversion). Что еще более важно, у вас есть история изменений. Еще лучше (с CVS), вы должны сделать шаг выполнения «checkout», чтобы сделать файл доступным для записи.

1

Да, это немного трудно сказать, что вы ищете

  • безопасности по отношению к другим пользователям редактирование файлов -> Использование «CHMOD, fchmod»

  • безопасности против вас сами случайно возиться с вашими исходными файлами -> вам следует по-настоящему изменить свое мышление и использовать средство управления исходным кодом. Как Subversion (SVN) или даже лучше Mercurial.

 Смежные вопросы

  • Нет связанных вопросов^_^