auの日記

プログラミング初心者の日記。(auはハンドルネームです)

macにUnreal lEngine4をインストールする

auです。

今回は、Unreal Engine4をmacOSにインストールしたいと思います。

公式サイトにログインする

  1. 公式サイト: https://www.unrealengine.com/ja/features
  2. 右上にあるログインかダウンロードをクリックしてログイン
  3. 同意して「ダウンロードに進む」をクリックf:id:program-shoshinsya:20181006142716p:plain
  4. 画面が変わると自動的にダウンロードされると思いますが、されない場合は「MAC」をクリックf:id:program-shoshinsya:20181006143004p:plain
  5. Finder→ダウンロード→画像のアプリケーションを起動f:id:program-shoshinsya:20181006143148p:plain
  6. Epic Games LauncherをApplicationsにドラッグf:id:program-shoshinsya:20181006143339p:plain注: Applicationsにドラッグしないと「アプリケーションのアップデートを確認」みたいなのを無限ループするので注意してください。これにはまってしまい時間をロスしてしまいました。
  7. 勝手にアプリが開くと思うので、ログインをするとこんな感じの画面が出ます。左下にある「起動」という黄色いボタンが、「インストール」となっているはずなのでクリックをしてインストール先を指定すれば完了です。f:id:program-shoshinsya:20181006144015p:plain

標準エラー出力(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
// 実行結果

f:id:program-shoshinsya:20181005172728p:plain

./a.out 1>stdout.txt 2>stderr.txtの解説

./a.outの出力先を変更できます。

  1. 1>stdout.txt 標準出力(stdout)を"stdout.txt"に出力
  2. 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」という結果が表示されました。
これについて調べてみると、配列の大きさを超えて代入してしまっているため、このような結果が表示されるそうです。

ポートとは

auです。

今日は「ポート」という用語について調べました。

ポートとは

ポートは、ネットワークと機器に接続する端子をつける場所で使われる用語です。

今回は、ネットワークでのポートについて調べました。

意味: ネットワークからパソコンに接続するときの部屋のドアのようなもの

パソコンからネットワークを通じて通信する際にはIPアドレスとポートを使用します。

IPアドレスが家(パソコン)だとしたら、その家のドアはポートになります。

ポートにはそれぞれ番号が振られていて、送受信する際にいずれかのポートを通ることになります。

ポート番号は、80がインターネット、21・22はFTPなどが、常識になっている場合もあります(変更も可能です)。

物理トポロジー・論理トポロジー

auです。

今回は「物理トポロジー」と「論理トポロジー」について調べました。

きのうネットワークトポロジーについての記事を書きました。

ネットワークトポロジーとは「ネットワークの接続形態」のことでした。

物理トポロジーとは

物理トポロジーとは「ノード(PCなどのネットワークに接続している機器)が物理的にどのように接続しているかを表現したもの」です。

論理トポロジーとは

論理トポロジーとは「ノードが論理的にどのようにデータが流れているかを表現したもの」です。


この物理トポロジーと論理トポロジーの接続の仕方をみて、どのような型のネットワークなのかを判断します。

ネットワークトポロジーとは

auです。

今回は「ネットワークトポロジー」という用語について調べました。

ネットワークトポロジーとは

ネットワークトポロジーとは「ネットワークの接続形態」のことです。

ネットワークに接続する機器が、どのような経路で接続するかをダイアグラム表します。

"ネットワーク構成"や"網構成"とも呼ばれます。