Linuxのファイル操作
この記事の例では、Python ファイルの読み書き操作と Linux シェル変数コマンドを対話的に実行する方法を説明します。皆さんの参考に共有してください。詳細は次のとおりです。
ファイル操作に関連するシステム コール
Create
int creat(const char *filename, mode_t mode);
Parameter mode は new ファイルのアクセス権限を指定します。umask と合わせてファイルの最終的な権限 (mode&umask) を決定します。umask は、ファイルの作成時に削除する必要があるアクセス権限を表します。これは、読み取り、書き込み、および実行にのみ影響します。呼び出し関数は int umask (int newmask) です。
Open
int open(const char *pathname, int flags);
pathname は、開きたいファイル名です (パス名、デフォルトは現在のパスです)
flags フラグを開きます
O_RDONLY ファイルを読み取り専用モードで開きます
-
#O_WRONLY 書き込み専用ファイルを開きます
O_RDWR ファイルを開きます読み取りおよび書き込み用のファイル
#O_APPEND としてファイルを開く append
## としてファイルを開く- #O_CREAT ファイルの作成
-
##O_NOBLOCK ノンブロッキングな方法でファイルを開きます -
O_TRUNC ファイルが既に存在する場合は、ファイルの内容を削除します - int open(const char *pathname, int flag, mode_t mode)
##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 (なし)、またはこれらの値の合計の値を取ることができます。 - #1 桁目はユーザー ID の設定を示します
- 2 桁目はユーザー ID の設定を示しますグループ ID の設定を示します
-
# 5 桁目は他のユーザーの権限を表します - open("test", O_CREAT, 10705); 上記のステートメントは次と同等です:
- open("test ", O_CREAT , S_IRWXU | S_IROTH | S_IXOTH | S_ISUID );
読み取りと書き込み -
int read(int fd, const void *buf, size_t length);
int write (int fd, const void *buf, size_t length);
- 位置決め
- ランダムなファイルの場合、読み書きする場所をランダムに指定できます:
int lseek(int fd, offset_t offset, int whence);
lseek() は、ファイル読み取り/書き込みポインタを wherece に相対的にオフセット (負の値も可) バイト移動します。操作が成功すると、ファイル ヘッダーを基準としたファイル ポインターの位置が返されます。 - 次の値を使用できるパラメータ:
SEEK_SET: ファイルの先頭を基準とした相対値。
SEEK_CUR: 相対ファイル読み取りおよび書き込みポインターの現在位置。 SEEK_END: ファイルの最後からの相対位置。
特定のオペレーティング システム プラットフォームに依存しない C ライブラリ関数のファイル操作
Create and open
FILE *fopen(const char *path, const char *mode);
fopen() は、指定されたファイル filename を開くことを実現します。mode はオープン モードです。 Linux システムはバイナリ ファイルとテキスト ファイルを区別しません。
a、ab は追加モードで開かれます。ファイルが存在しない場合は、ファイルを作成します
int fputc(int c, FILE *stream);
char *fgets(char *s, int n, FILE *stream);
int fputs(const char *s, FILE *stream);
int fprintf (FILE *stream, const char *format, ...);
int fscanf (FILE *stream, const char *format, ...);
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 *stream, fpos_t *pos);
nt fsetpos(FILE *stream, const fpos_t *pos);
int fseek(FILE *stream, long offset, int whence);
- fread() は、ストリームからの n 個のフィールドの読み取りを実装します。 field は size バイトで、読み取られたフィールドは ptr が指す文字配列に入れられ、実際に読み取られたフィールド数が返されます。
- write() は、バッファ ptr が指す配列から n 個のフィールドを毎回ストリームに書き込むことを実装します。各フィールドは size バイトであり、実際に書き込まれたフィールドの数が返されます。
#Close
int fclose (FILE *stream);
Linux ファイル システムのディレクトリ構造
- /bin----最もよく使用される基本的なコマンド (ls など) が格納されます。 、cp、mkdir など、このディレクトリ内のファイルはすべて実行可能です。
-
#/opt----追加のインストール ソフトウェアがホスト上に保存されるディレクトリ -
/proc----オペレーティング システムの実行中に、プロセスとカーネル情報 (CPU、ハードディスク パーティション、メモリ情報、など)がここに保存されます。これはシステムメモリのマッピングであり、このディレクトリに直接アクセスすることでシステム情報を取得できます。 -
/root----特権ユーザーのホームディレクトリ -
/sbin----特権ユーザー用の実行コマンドが格納されているディレクトリ。一般ユーザーにはこのディレクトリ内のコマンドを実行する権限がありません。
#/tmp-----一時ファイルを保存します。
/usr-----システム アプリケーションとファイル (コマンドやヘルプ ファイルなど) がプログラムを保存するディレクトリ、Windows のプログラム ファイル ディレクトリに似ています。#/var-----ログ ファイルなど、頻繁に変更されるディレクトリはこのディレクトリに配置されます
/sys----
カーネル デバイス ツリーの直感的な反映。カーネル オブジェクトが作成されると、対応するファイルとディレクトリもカーネル オブジェクト サブシステム内に作成されます。/initrd---起動時に initrd イメージが一時ルート ファイル システムとして使用される場合/linuxrc を実行して実際のルート ファイル システムをマウントした後、元の初期 RAM ファイル システムが /initrd ディレクトリにマップされます。
- Linux ファイル システムとデバイス ドライバー
linux 親ディレクトリのアクセス許可がサブディレクトリ ファイルに影響する 操作
Linux シェル変数コマンドを使用して Python ファイルの読み取りおよび書き込み操作を対話的に実行する方法
以上がLinuxのファイル操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Centosとubuntuの重要な違いは次のとおりです。起源(CentosはRed Hat、for Enterprises、UbuntuはDebianに由来します。個人用のDebianに由来します)、パッケージ管理(CentosはYumを使用し、安定性に焦点を当てます。チュートリアルとドキュメント)、使用(Centosはサーバーに偏っています。Ubuntuはサーバーやデスクトップに適しています)、その他の違いにはインストールのシンプルさが含まれます(Centos is Thin)

Centosのインストール手順:ISO画像をダウンロードし、起動可能なメディアを燃やします。起動してインストールソースを選択します。言語とキーボードのレイアウトを選択します。ネットワークを構成します。ハードディスクをパーティション化します。システムクロックを設定します。ルートユーザーを作成します。ソフトウェアパッケージを選択します。インストールを開始します。インストールが完了した後、ハードディスクから再起動して起動します。

Centosは廃止されました、代替品には次のものが含まれます。1。RockyLinux(最高の互換性)。 2。アルマリン(Centosと互換性); 3。Ubuntuサーバー(設定が必要); 4。RedHat Enterprise Linux(コマーシャルバージョン、有料ライセンス); 5。OracleLinux(CentosとRhelと互換性があります)。移行する場合、考慮事項は次のとおりです。互換性、可用性、サポート、コスト、およびコミュニティサポート。

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

CentOSが停止した後、ユーザーは次の手段を採用して対処できます。Almalinux、Rocky Linux、Centosストリームなどの互換性のある分布を選択します。商業分布に移行する:Red Hat Enterprise Linux、Oracle Linuxなど。 Centos 9ストリームへのアップグレード:ローリングディストリビューション、最新のテクノロジーを提供します。 Ubuntu、Debianなど、他のLinuxディストリビューションを選択します。コンテナ、仮想マシン、クラウドプラットフォームなどの他のオプションを評価します。

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)

Dockerは、コンテナエンジン、ミラー形式、ストレージドライバー、ネットワークモデル、コンテナオーケストールツール、オペレーティングシステム仮想化、コンテナレジストリを使用して、コンテナ化機能をサポートし、軽量でポータブルで自動化されたアプリケーションの展開と管理を提供します。
