

cygwinでC言語を勉強しています。
そして昨日system関数の存在を知ったのでこんなプログラムを書いて見ました。
#include <stdio.h>
#include <stdlib.h>
main()
{
system("pwd");
system("cd ..");
system("pwd");
}
すると、結果は
/home/prg/
/home/prg/
となりました。"cd .."を実行しているのですから
/home/prg/
/home/
とならないのはなぜでしょうか?
どうしても、わかりません。どうかよろしくお願いします。
No.2ベストアンサー
- 回答日時:
system関数は「子シェル」を呼び出して(起動して)処理を行います。
処理が終ると、起動された子シェルはアンロードされ、起動時に設定されたカレントディレクトリ、環境変数、メモリも一緒に消えて無くなります。
子シェルが起動される時のカレントディレクトリは毎回同じ(親プロセスのカレントディレクトリを毎回引き継ぐ)ですから、system関数を呼ぶ度に、毎回同じディレクトリがカレントディレクトリになります。
何故なら、system関数を発行した親プロセス、呼ばれた子シェルは、それぞれ「自分のカレントディレクトリ」を持っているので、子シェルの中で cd .. を実行しても、親プロセスのカレントディレクトリは影響を受けません。
その為、一回目のsystem("pwd");と二回目のsystem("pwd");では、同じ結果になります。
詳しい説明ありがとうございます。
毎回実行した結果が消されてるとは思いませんでした。
では、popenを使えば
pwd
cd ..
pwd
としたときに結果が反映されますか?
No.3
- 回答日時:
>#pwd
>#cd ..
>#pwd
>をプログラムでやるにはどうしたよいのでしょうか?
以下のように、セミコロンで区切るとできます。
system("pwd ; cd .. ; pwd");
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ビデオカード・サウンドカード DellのPC(xp)に、サウンドカードドライバ(内蔵)をインストールしたい。 1 2023/07/31 11:32
- UNIX・Linux AWSのEC2のZabbixユーザーでawscliコマンドが実行できない状態を解決する 1 2022/12/06 22:17
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- 英語 下記の英文の日本語訳をお願いします。 1 2023/03/02 10:01
- 英語 『G19 Gen5 MOS - Modular Optic System for Gen5』 の 『 1 2023/03/05 13:37
- 英語 下記の英文を日本語に訳して、その意味を教えてください。 1 2023/03/09 14:13
- 英語 Modular Optic System (MOS)とは、一体どの様な物の事なのかを教えてください。 1 2023/03/03 09:52
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- 英語 It has an extremely popular e-mail system, reporte 1 2022/11/04 19:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
_access関数が EACCES エラーと...
-
CGIからのメール送信が重く・・・
-
バッチファイルで多重起動を防ぐ
-
バッチスクリプト処理でエラー...
-
プリンタの状態を知る方法
-
MySQLへのDB::connectで、faile...
-
DebianのApache(掲示板)CGIエ...
-
メーリングリスト宛てのメール...
-
redhatのインストールが途中で...
-
exeファイルの実行結果をテキス...
-
CygwinをインストールしたけどX...
-
アプリケーションをインストー...
-
Linux Red HatをノートPCに...
-
illustratorを日本語仕様にする...
-
コマンドプロンプトの危険性を...
-
アプリケーションをインストー...
-
対話式インストールによるノー...
-
linuxのフォルダと配置について
-
apacheのアクセスログを整理
-
Xserverを停止したいが、gdmが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチスクリプト処理でエラー...
-
バッチファイルで多重起動を防ぐ
-
VBでExcelが起動されているか知...
-
コンソールアプリの起動結果待...
-
Linux環境変数設定(putenv?se...
-
プリンタの状態を知る方法
-
Open Office Org 急に起動しな...
-
「応答なし」の状態を監視する方法
-
PC起動後に・・・
-
Javaのイベントリスナー機能の応用
-
Apache2が起動しません
-
system関数について
-
パソコン のデータ 特にPDFを消...
-
_access関数が EACCES エラーと...
-
Web Developerが正常にインスト...
-
PostgreSQLについて
-
CreateProcessでコンソールアプ...
-
ラズパイ3でsocket接続できない。
-
OLEサーバコンポーネントを作っ...
-
MySQLへのDB::connectで、faile...
おすすめ情報