ファイル操作に関連するシステムコール 作成する int creat(const char *ファイル名, mode_t モード); パラメータ mode は、新しく作成されたファイルのアクセス許可を指定します。パラメータ mode と umask の組み合わせで、ファイルの最終的なアクセス許可 (mode と umask) が決まります。umask は、ファイルの作成時に削除する必要があるアクセス許可の一部を表します。これは、読み取り、書き込み、および実行のアクセス許可にのみ影響します。呼び出し関数は int umask (int newmask) です。 開ける int open(const char *パス名、int フラグ); パス名は、開きたいファイル名です(パス名を含みます。デフォルトは現在のパスです) フラグを開くフラグ
int オープン (const char *パス名、int フラグ、mode_t モード) フラグが O_CREATE の場合、ファイルのアクセス権を示すモード フラグを指定します。 S_IRUSR ユーザーは読み取り可能 S_IWUSRユーザーは書き込み可能 S_IXUSRユーザーは実行できる S_IRWXU ユーザーは読み取り、書き込み、実行が可能です S_IRGRPグループは、 S_IWGRPグループは書き込み可能 S_IXGRPグループは実行できる S_IRWXGグループは読み取り、書き込み、実行が可能です S_IROTH 他の人が読める S_IWOTH 他の人が書くことができます S_IXOTH 他の人が実行できる S_IRWXO 他のユーザーは読み取り、書き込み、実行が可能です S_ISUID ユーザーの実行IDを設定する S_ISGID グループの実行IDを設定する モード フラグでは、ファイルのアクセス許可を表すために数字を使用することもできます。 各数値は、1 (実行権限)、2 (書き込み権限)、4 (読み取り権限)、0 (なし)、またはこれらの値の合計になります。 最初の数字はユーザーIDの設定を示します 2桁目はグループIDを示します 3番目のビットはユーザー自身の許可ビットを示します 4桁目はグループの権限を示します 5桁目は他人の権限を示す オープン("テスト", O_CREAT, 10705); 上記のステートメントは以下と同等です: オープン("テスト", O_CREAT, S_IRWXU | S_IROTH | S_IXOTH | S_ISUID); 読み書き int 読み取り(int fd、const void *buf、size_t 長さ); int 書き込み(int fd, const void *buf, size_t 長さ); パラメータ fd はファイル記述子、buf はバッファへのポインタ、length はバッファのサイズ (バイト単位)、戻り値は実際に読み書きされたバイト数です。 read()は、ファイル記述子fdで指定されたファイルから長さバイトをbufが指すバッファに読み込み、戻り値は実際に読み込まれたバイト数です。 write() 実装は、buf が指すバッファからファイル記述子 fd が指すファイルに length バイトを書き込み、戻り値は実際に書き込まれたバイト数になります。 位置 ランダム ファイルの場合、読み取りと書き込みの場所をランダムに指定できます。 lseek() は、whence を基準として、ファイルの読み取り/書き込みポインターを offset (負の値も可) バイト移動します。操作が成功した場合、ファイル ヘッダーを基準としたファイル ポインターが返されます。 whence パラメータには次の値を使用できます。
閉鎖 int 閉じる(int fd); C ライブラリ関数ファイル操作 - 特定のオペレーティング システム プラットフォームに依存しない 作成して開く FILE *fopen(const char *path, const char *mode); モードの価値 r, rb 読み取り専用モードで開く w、wb 書き込み専用です。ファイルが存在しない場合は作成され、存在する場合は切り捨てられます。 a、ab は追加モードで開かれます。ファイルが存在しない場合は作成します r+、r+b、rb+ は読み取り/書き込みモードで開きます w+、w+b、wh+ 読み取りと書き込み用に開きます。ファイルが存在しない場合は新しいファイルが作成され、存在する場合はファイルが切り捨てられます。 a+、a+b、ab+ 読み取りおよび追加用に開きます。ファイルが存在しない場合は、新しいファイルを作成します 読み書き int fgetc(FILE *ストリーム); int fputc(int c, FILE *ストリーム); char *fgets(char *s, int n, FILE *stream); int fputs(const char *s, FILE *stream); int fprintf(FILE *ストリーム、const char *フォーマット、...); int fscanf (FILE *ストリーム、const char *フォーマット、...); size_t fread(void *ptr, size_t size, size_t n, FILE *stream); size_t fwrite (const void *ptr, size_t size, size_t n, FILE *stream); int fsetpos(FILE *ストリーム、fpos_t *pos); nt fsetpos(FILE *ストリーム、const fpos_t *pos); int fseek(FILE *ストリーム、long オフセット、int whence); fread() は、ストリームから n フィールドを読み取ります。各フィールドは size バイトであり、読み取ったフィールドを ptr が指す文字配列に格納し、実際に読み取ったフィールドの数を返します。 write() は、buffer ptr が指す配列から n フィールドをストリームに書き込みます。各フィールドの長さは size バイトで、実際に書き込まれたフィールドの数を返します。 閉鎖 int fclose (FILE *ストリーム); Linux ファイルシステムのディレクトリ構造 /bin---- ls、cp、mkdir などの最も頻繁に使用される基本コマンドが格納されます。このディレクトリ内のすべてのファイルは実行可能です。 /boot----Linux の起動時に使用されるコア ファイル (vmlinuz、initrd.img などの接続ファイルやイメージ ファイルを含む) /dev----デバイスファイル保存ディレクトリ。アプリケーションはこれらのファイルを読み書きおよび制御することで実際のデバイスにアクセスできます。 /etc---- ユーザー アカウントやパスワード構成ファイルなど、システム管理に必要な構成ファイルとサブディレクトリ。 /home----一般ユーザーのホーム ディレクトリ。各ユーザーには独自のディレクトリがあり、通常はユーザーのアカウントに基づいて名前が付けられます。 /lib---- ライブラリ ファイルが格納されるディレクトリ。Windows の DLL ファイルに似た、システムの最も基本的なダイナミック リンク共有ライブラリです。 /lost+found----通常は空です。システムが予期せずクラッシュしたり、マシンが予期せずシャットダウンしたりすると、いくつかのファイルフラグメントが生成され、ここに配置されます。 /mnt----ユーザーが他のファイルシステムを一時的にマウントするのに便利です。たとえば、CD-ROM ドライブを /mnt/ にマウントすると、このディレクトリに入ると CD-ROM ドライブの内容を表示できます。 メディア---- USB フラッシュ ドライブ、光学ドライブなどの一部のデバイスを自動的に識別し、このディレクトリにマウントします。 /opt----ホストにインストールされた追加ソフトウェアを保存するディレクトリ /proc---- オペレーティングシステムが実行中の場合、プロセスとカーネルの情報 (CPU、ハードディスクのパーティション、メモリ情報など) がここに保存されます。システムメモリのマッピングであり、メモリ内に存在します。このディレクトリに直接アクセスすることでシステム情報を取得します。 /root----スーパー特権ユーザーのホームディレクトリ /sbin----スーパー特権ユーザーの実行可能コマンドが保存されるディレクトリ。通常のユーザーにはこのディレクトリ内のコマンドを実行する権限はありません。 /tmp-----一時ファイルを保存します。 /usr----- Windows のプログラム ファイル ディレクトリと同様に、システム アプリケーションとファイル (コマンドやヘルプ ファイルなど) が保存されるディレクトリ。 /var-----ログファイルなど、頻繁に変更されるディレクトリはこのディレクトリに配置されます /sys----カーネルデバイスツリーの視覚的な反映。カーネル オブジェクトが作成されると、対応するファイルとディレクトリもカーネル オブジェクト サブシステムに作成されます。 /initrd --- 起動プロセス中に initrd イメージが一時ルート ファイル システムとして使用される場合、その上で /linuxrc を実行して実際のルート ファイル システムをマウントした後、元の初期 RAM ファイル システムが /initrd ディレクトリにマップされます。 Linux ファイルシステムとデバイスドライバー 以下もご興味があるかもしれません:
|
>>: Vueはフィルターを使用して日付をフォーマットします
Dockerの機能1) すぐに始められるユーザーがプログラムを「Docker 化」するには、わずか数...
目次1. 基本1.参照2. 参照3. 参照4. 最適な使い方2. 詳細な1. なぜrefが必要なのか...
<br />前のチュートリアル:Webデザインチュートリアル(2):模倣と盗作について。...
1. タイプの導入1.1 ドメインベースの仮想ホスティングいわゆるドメイン名ベースの仮想ホストとは、...
先日、rsync を使用して LAN 上の別のシステムに大きなファイルを転送していました。非常に大き...
目次1.0 はじめに2.0 Dockerのインストール3.0基本的なDockerコマンド4.0 Do...
最近、モバイルページを制作する際には、レイアウトにインラインブロック要素がよく使われますが、インライ...
導入yum (Yellow dog Updater, Modified) は、Fedora、RedH...
皆さんの時間は貴重だと承知しているので、プロセス コマンドを直接書き留めておきます。設定できます。原...
この記事では、CentOS 7 環境でソース コードから MySQL 5.7 をインストールする方法...
最近、テスト サーバーのオペレーティング システムを Cent0S 7.5 にアップグレードし、Py...
Docker を実行するには root 権限が必要です。非 root ユーザーに docker コマ...
目次1. 基本的な使い方2. 指示の動作原理2.1. 初期化2.2 テンプレートのコンパイル2.3....
前提条件: Mac、zsh がインストールされ、bash のときに mysql がダウンロードされ、...