macにUnreal lEngine4をインストールする
auです。
今回は、Unreal Engine4をmacOSにインストールしたいと思います。
公式サイトにログインする
- 公式サイト: https://www.unrealengine.com/ja/features
- 右上にあるログインかダウンロードをクリックしてログイン
- 同意して「ダウンロードに進む」をクリック
- 画面が変わると自動的にダウンロードされると思いますが、されない場合は「MAC」をクリック
- Finder→ダウンロード→画像のアプリケーションを起動
- Epic Games LauncherをApplicationsにドラッグ注: Applicationsにドラッグしないと「アプリケーションのアップデートを確認」みたいなのを無限ループするので注意してください。これにはまってしまい時間をロスしてしまいました。
- 勝手にアプリが開くと思うので、ログインをするとこんな感じの画面が出ます。左下にある「起動」という黄色いボタンが、「インストール」となっているはずなのでクリックをしてインストール先を指定すれば完了です。
標準エラー出力(stderr)とは
auです。
今回は「標準エラー出力(stderr)」について調べました。
標準エラー出力とは
標準エラー出力とは、エラーメッセージや警告(Warning)メッセージを出力するためのストリームです。
標準出力の"stdout"があるじゃないと思うかもしれませんが、"stdout"と"stderr"は別物で、stdoutはリダイレクトされ、stderrはリダイレクトされないため、分かれて出力されます。
#include <stdio.h> int main(void) { fprintf(stdout, "stdout"); fprintf(stderr, "stderr"); return 0; } // ./a.out 1>stdout.txt 2>stderr.txt // 実行結果
./a.out 1>stdout.txt 2>stderr.txtの解説
./a.outの出力先を変更できます。
- 1>stdout.txt 標準出力(stdout)を"stdout.txt"に出力
- 2>stderr.txt 標準エラー出力(stderr)を"stderr.txt"に出力
エイリアスとは
auです。
今回は「エイリアス」という用語について調べました。
エイリアスとは
エイリアスとは「別名」という意味です。
ターミナルでエイリアス(別名)で登録することにより、登録した名前でも同じ処理ができるようになります。
alias py="python"
今はターミナルでこのようにエイリアスを登録しています。
こうすることで、"py"と打つだけでpythonを起動することができます。
$ py Python 3.7.0 (default, Jun 28 2018, 07:39:16) [Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
C言語: puts関数はNULL文字(\0)で改行される
auです。
今回は「puts関数」を使用していた際に、改行しようとしていないのに改行されているので、どんな風に処理されているのだろうと思い調べてみました。
puts関数
#include <stdio.h> int puts(char* s)
サンプル
#include <stdio.h> #include <string.h> int main(void) { char c[] = "Hello"; char c1[5]; puts("hello"); // 1 puts("world\n"); // 2 puts(""); // 3 puts("My name is au."); // 4 puts("1"); // 5 strcpy(c1, c); puts(c1); // 6 return 0; } // 実行結果 hello world My name is au. 1 Abort trap: 6
puts関数は、sに代入された文字列を出力します。
出力する際に、文字列の後ろについているNULL文字(\0)は"\n"に変換されるため、勝手に改行されるような挙動になります。
3番: ""(ダブルクォーテーション)のみでも改行されました。
4番: scanfと違い、空白で改行されずに出力されました(scanfで空白で改行せずに出力する方法)
5番: puts(1)のようにすると、コンパイルでwarningが出ました。実行も"Segmentation fault: 11"となってしまいます。
6番: NULL文字がなくなるとどうなるのか気になり、NULL文字が入らない大きさの変数にstrcpyで実行した結果「Abort trap: 6」という結果が表示されました。
これについて調べてみると、配列の大きさを超えて代入してしまっているため、このような結果が表示されるそうです。