Создать папку только для чтения на языке C - PullRequest
1 голос
/ 18 августа 2010

Я использую язык C и ОС Linux в качестве платформы программирования. И я хочу знать, как я могу создать папку только для чтения программно? Есть ли какая-нибудь команда mkdir на языке C для Linux или Unix-подобной системы?

Спасибо.

Ответы [ 5 ]

5 голосов
/ 18 августа 2010

Способ сделать это - использовать mkdir(2) для создания папки, заполнить ее нужными файлами, использовать stat(2), чтобы получить текущие разрешения, замаскировать биты записи, затем использовать * 1003.* установить разрешения.

3 голосов
/ 18 августа 2010

Вы можете использовать системный вызов mkdir :

int mkdir (const char *filename, mode_t mode);

Чтобы создать вновь созданную папку RO (без записи и без разрешения на выполнение), вы можете использовать параметр mode, как описано здесь

1 голос
/ 18 августа 2010

Вы можете использовать функцию mkdir()

Справка:

#include <sys/stat.h>

int mkdir(const char *path, mode_t mode);

Например, чтобы создать папку с именем 'hello', доступную только текущему пользователю:

mkdir("hello", 0700); /*the second argument is the permission mask*/

Для получения дополнительной информации наберите на терминале

man 2 mkdir

Если вы чувствуете себя креативно, вы можете сделать это более наивным способом

system("mkdir hello");
system("chmod 700 hello");

но нет причин делать это ...

1 голос
/ 18 августа 2010

Вы можете использовать это:

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

int mkdir(const char *pathname, mode_t mode);
0 голосов
/ 18 августа 2010

Умаск должен работать

#include <stat.h>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...