質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

Q&A

解決済

2回答

2108閲覧

C言語でシェルを作成し、コマンドプロンプトをシェルの名前に変える方法

退会済みユーザー

退会済みユーザー

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

0グッド

1クリップ

投稿2018/01/18 01:22

###前提・実現したいこと
C言語でシェルを作成し、コマンドプロンプトをシェルの名前に変えようとしています。
これらを実現するために、どのようなコードを書く必要があるのか調べているのですが、分からないためアドバイスをいただきたいです。

実現したいこと

./hogehoge hogehoge>> hogehoge>>exit //exitで終了可能

###補足情報(言語/FW/ツール等のバージョンなど)
ターミナル バージョン2.8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttyp03

2018/01/18 01:48

質問が回りくどいのですが、要は自身のファイル名を取得する方法ということですか?
退会済みユーザー

退会済みユーザー

2018/01/18 01:59

コメントいただきましてありがとうございます。はい。実行ファイル名がコマンドプロンプトになるということです。
ttyp03

2018/01/18 02:15

いや、実行ファイル名を取得する方法がわからないのか、取得できるけどプロンプトとして利用する方法がわからないのか、どちらですか?
退会済みユーザー

退会済みユーザー

2018/01/18 02:26

どちらも分かりません。
ttyp03

2018/01/18 02:29

というように、何がわからないのかを明確にした質問をするようにしたほうが良いですよ。回答者が推測しないといけないのは手間がかかるだけでなく、本当に有益な回答が埋もれてしまいます。
ttyp03

2018/01/18 02:30

回答はotnさんの回答でよいと思います。
退会済みユーザー

退会済みユーザー

2018/01/18 03:49

ご回答いただきましてありがとうございます。
guest

回答2

0

よく考えたらプログラム実行中はターミナルのプロンプトは表示されませんね。
otnさんの回答のとおり、普通にprintfでよいです。

以下は間違いです。失礼しました。


「C言語でシェルを作成し」という部分がよくわからず、動作も未検証ですが
setenvにて環境変数PS1に任意のプロンプト文字列hogehoge>>なりを設定してあげればよいと思います。
なおsetenv前にgetenvで変更前の文字列を保持しておき、プログラム終了時にはsetenvで戻してあげたほうがよいでしょう。
参考:Bashのプロンプトを変える(OSX)

投稿2018/01/18 01:43

編集2018/01/18 02:04
can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/01/18 03:48

ご回答いただきましてありがとうございました。
guest

0

ベストアンサー

argv[0]にコマンド名が入るので、その文字列の最後の/以降を切り出すとhogehogeになります。
それをprintfすればいいかと。

投稿2018/01/18 01:26

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/01/18 03:47

ご回答いただきましてありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問