スタッフブログ

 
NEWS

[C言語]プロセス生成とメモリの仕組み


2022年11月8日

処理の流れ
1 プログラム実行
2 変数(n)に1を代入
3 10秒スリープ
4 子プロセス生成

・ 親プロセスの処理

変数(n)をインクリメント

・ 子プロセスの処理

10秒スリープ
変数(n)をインクリメント

watchコマンドでプロセスを監視しましょう。

プログラム実行前

watchコマンドが起動しています。

プログラム実行直後

親プロセスが実行しています。

子プロセス生成

プロセスが2つ起動しています。子プロセスと親プロセスが確認できます。

メモリの確認

変数nを追ってみます。
parentが親プロセス、childが子プロセスです。

子プロセスで変数nを2にインクリメントしているにも関わらず、親プロセスのインクリメントの値が3ではなく2です。
これは、子プロセスは親プロセスのメモリを共有しないからです。

変数nがなぜ子プロセスで宣言済みなの?
子プロセスは起動時に親プロセスのメモリ領域の内容を複製します。複製した内容を専用のメモリ領域に割り当て、起動後は独立して実行されます。

最後までお読みいただきありがとうございました。


-->
NEWS

[PHP]ファイルからデータを読み込む


2022年11月1日

ファイルを開く

ファイルを開く関数
fopen(ファイル名, モード, ): resource | false

指定するファイルは、PHPからアクセスできるものでなければなりません。
ファイルのパーミッションがアクセスを許可されているかどうか確認する必要があります。
モードとは、ファイルを開く目的を表す文字列のことです。
読み込む場合、”r”をを指定します。

PHPからアクセスとは
ファイルにはパーミッションという概念があります。
ファイルにアクセスできるかは、パーミッションによって決まります。
パーミッションが存在する理由は、複数のユーザが一台のコンピュータを利用する前提だからです。
“PHPからアクセスできる”とは、PHPプログラムを実行するユーザがそのファイルに対してアクセス権限が付与されていることを指します。

ファイルからデータを読み込む

ファイルからデータを取得する関数
fgets(リソース): string | false

リソースは, fget関数の戻り値です。公式ドキュメントには、fget関数の説明で、”ファイルポインタから1行取得します。”と記述されています。
ファイルポインタは、C言語で利用する用語です。
「PHP」自体がC言語で書かれているので、そのように記述されています。

ファイルを閉じる

ファイルを閉じる関数
fclose(リソース(=ファイルポインタ)): bool

リソースは、fopen() で正常にオープンされたファイルを指している必要があります。

最後までお読みいただきありがとうございました。

-->
NEWS

読書勉強会はじめました 〜楽しいチーム開発をめざして〜


2022年10月15日
NEWS

数字VS文字! どっちが覚えやすい? ~DNSのありがた〜いお話~


2022年10月5日
NEWS

モダンな開発環境・自由な働き方〜これがうちなーてっくだ!〜


2022年9月26日
NEWS

エンジニア奮闘記〜未経験からOJT&PM?への道のり〜


2022年9月10日
NEWS

[チャット研修]RDBのリレーションについて(1:多から多:多への物語~)


2022年9月4日
NEWS

エンジニアは右脳を使え! ⑥ -Roy Hargrove


2022年9月3日