雪解けの音色
学校の中も静まり返ってきた放課後、僕は音楽棟に忘れ物をとりに行っていた。
アブラゼミがやかましく鳴いており、日が沈んでいる頃合いにもかかわらず額からは止めどなく汗が吹き出してくる。
今日は部活動で疲れたから早く帰りたい。
僕は落ちてくる汗を手で拭いながら駆け足で廊下を歩く。
「タラタッタッタータータ♪」
僕が教室の前を通り過ぎようとした瞬間、温かみがあり艶やかな音色が聞こえてきた。
とても落ち着く音だ。急いでいたはずの僕は足を止め立ち止まっていた。
曲名は確かモーツァルトのクラリネット協奏曲だったはずだ。僕が最後の演奏会で吹いた楽曲もこの曲だった。
いつぶりだろうか、クラリネットの音色を耳にしたのわ。
ーーーーーーーーーー
それはいまからちょうど5年前の中学2年の夏休みの出来事だった。
友達の家で遊んでいた僕に突然じぃじから電話がかかってきた。
その声からはひどく取り乱していることが感じられ、なにか大事があったのではないのかと勘付くことは容易だった。
結果から言うと母が死んだ。急死であった。
父と母は僕が幼い頃に離婚してしまったらしい。僕は母に引き取られ、めいいっぱいの愛情を注がれながら育った。
僕はいつもそんな母に感謝していた。今考えると母に反抗したことすらなかった。なにより、僕を第一に考えてくれる母のことが大好きだった。
その分、母が死んだ時の悲しみや絶望感は凄まじいものだった。
母親が死んでから心に穴が空いたかのように何をやっても楽しめなかった。
友達と話していてもどこか楽しくない。笑顔を取り繕うことすらが苦痛だった。なければならない感情がいくつか失われていたようだった。
病院ではうつ病と診察された。
興味や喜び、活力が失われる精神の病である。
僕は幼い頃からクラリネットを習い続けていた。先生からはこのままいけば一流のクラリネット奏者になれると言われていた。
家族からも期待されており、僕もその期待に応えようと必死で練習をしていた。
僕は演奏している時、自分だけの世界に没頭できるクラリネットが大好きだった。
だけど、母と死別して以来演奏していてもどうも楽しめなかった。
そんな僕がクラリネットに関わる資格はないと思いクラリネットから距離を置いた。こんなやつが演奏している音色では周りまでをも暗くしてしまう。
今でもあの時の選択は間違ってはいないと思っている。
うつの症状に悩まさるようになって以来、毎晩自分が思ったことを日記に記すのが日々の日課になっていた。辛いこと、少しでも感情が揺れ動いたことをなんでも書いた。
そのおかげもあってか高校に入るときには友達と違和感なく話すことができるレベルにはうつの症状が回復していた。
ーーーーーーーーーー
この綺麗な音色はどんな人が奏でているのだろうか?
気づけば僕は教室のドアに手をかけていた。
そっとドアを開けると教室の真ん中にある椅子に座わり、譜面を見ながらクラリネットを吹く少女の姿が見えた。
彼女は誰がみても美人だというだろう。しっとりとした黒髪に整った鼻筋が印象的だ。
少女は僕の存在には気付いてないようだ。譜面を見る顔は真剣そのもので音楽の世界に没頭しているように見えた。
どれほど、彼女を見つめていたのだろうか?
僕が気がついた頃には演奏は終了していた。
それほど僕は彼女の演奏に魅了されていた。
少女はクラリネットを置き、譜面をゆっくりと閉じた。その動きさえも綺麗に思えた。
「どうだった?」
突然少女の口から言葉が発された。彼女の位置から僕の姿は見えていないはずだ。いつから僕のことに気づいていたのだろうか。
「綺麗だと思った…。」
僕は咄嗟に、一番初めに頭に思い浮かんだ言葉を伝えた。
直感的に綺麗という言葉が一番彼女の演奏に合うと思った。
「そう。」
彼女は一言そう告げると、こちらを一瞥もせずに再び練習に戻ろうとする。
僕はそんな空気感にいたたまれずに教室から出て忘れ物をとりに行くことにした。
ーーーーーーーーーー
彼女とは必要最低限の会話しか交わしてない。なんのために感想を聞いてきたのかもわからない。
だけど、名前も知らない少女が奏でる曲を聴いている時間がとても楽しかった。
同時にあの少女のことが気になって仕方がなくなっていた。
自分でも久しぶりの感情の高揚に驚きを感じていた。
その日の日記はこの時の出来事でいっぱいだった。
ーーーーーーーーーー
次の日の放課後、僕は再び音楽棟を訪れていた。時間は午後6時半、部活を終えた生徒達が帰路につく時間である。
吹奏楽部が使っている教室からは昨日と同じくクラリネットの音色が聞こえてくる。
教室の窓からは昨日の少女の姿が見えた。部活動が終わった後も一人で熱心に自主練をしているのだろう。
あの少女のことが気になる。そんな思いに動かされ僕は教室のドアを開けた。
演奏がピタりと止み、少女と目が合う。
ドキッと心臓が鳴ったような気がした。それは恋心からなのかそれとも単なる驚きからなのかはわからなかった。
しばらく、視線が交差したままの気まずい時間が続いた。
「ごめん、また演奏を聞きたくて」
先に口を開いたのは僕の方だった。演奏を聞きたいと言うのは紛れもない本心である。
少女は考えた様子を見せた後、少し頬を緩ませて
「私の演奏でいいのなら」
と答えた。ふいに彼女が見せた笑顔に自分の顔が少し赤くなるのを感じた。
僕ってこんなに惚れっぽかったっけと思うと共に久しぶりに訪れた恋心を自覚した。
演奏が終了するたびに僕は感想を伝えた。彼女もそんな僕の感想を真剣に聞いてくれていた。
途中から彼女は僕がクラリネットを習っていたことに気づいた。それがあってか彼女が少し僕に対して心を開き出したように感じた。
気づけば僕らは話に夢中になっていた。
彼女の名前は彩る音と書いて彩音というらしい。彼女の両親は生粋の音楽家らしい。子供にも音楽を彩る何かをして欲しいという思いからつけられたのだろうか?
なんにせよ彼女にぴったりの名前だと思った。
ーーーーーーーーーー
この日から僕は毎日のように音楽棟へ通うようになった。
お互いに過去の話、音楽の話、なんでも話した。感性が合うとはこのことなんだと思うほど気が合った。
僕に訪れた一番の変化といえば再びクラリネットを手に取ったことだ。
彩音にクラリネットをもう一度やるように説得され僕が折れた形だ。
今はあの頃のようにクラリネットの演奏を最高に楽しんでやれている。彩音との出会いがクラリネットと僕を再びつないでくれた。
うつの症状もすっかりと消え失せて日々が充実していた。
そして日記は毎日、彩音と一緒に演奏したことや会話したことでいっぱいになっていた。
日記の最後のページには、二人が笑顔で子供にクラリネットを吹き聞かせている様子が描かれている。
ーーーーーーーーーーfin
実際の人物の恋愛模様を題材にして制作しました。
ペンネーム:恋路を邪魔せし者A
execl関数を攻略しよう!
まず、exec系関数は、現在のプロセスを指定したプログラムに置き換えて実行するというものということを頭に入れておきましょう。
今回は
execl("/bin/ls","ls",NULL); //lsというコマンドをこのプログラム内で実行したい
この文について解説していきます。
まず、execlの第1引数である/bin/ls。
これは実行ファイルの場所を表しています。
初めの/はルートディレクトリ(1番上のディレクトリ)、そのあとの/は次のディレクトリとのただの区切りです。
つまりこの第1引数は実行したいファイル(今回で言うとls)の絶対パスを表しているんですねぇ。
/
↓
bin
↓
ls
次に第2引数であるls。
これは簡単に言うとそのファイルを実行するためのコマンドを表しています。
プログラムリストの一覧を開くにはlsっていうコマンドを使いましたよね?
そのコマンドを引数として渡しているだけです。
わかりやすく言うと、実行したいファイルの場所を見つけた!(第1引数で)
けど、そのファイルを開く方法が分からない...。
そこで、lsって言うコマンドを使えばそのファイルを開いて実行出来るんだよってことを教えてあげる。
これが第2引数でコマンドを渡している理由です。
今回は第2引数をlsで表記しましたが、第1引数と同じく/bin/lsで表記してもかまいません。
ここまでみても第2引数の意味がわからないっていうそこのあなた!
第2引数はほとんどの場合、第1引数と同じになります。
分からなければ、第1引数と同じものを書いておきましょう笑
さて、execl関数を使う上で最も大切なのは最後のNULLです。
これは引数リストの最後は必ずNULLでないといけないというルールです!
ルールは守りましょう!
以上がexecl関数についての解説でした。
fork文を攻略しよう!(システムプログラミング)
1.#include<stdio.h> //標準入出力に関するヘッダファイル
2.#include<unistd.h> //UNIX標準に関するヘッダファイル
3.int main(){
4.fork();
5.fork();
6.printf("A¥n");
7.return 0;
8.}
今回はこのfork文が2回出てくるプログラムについての解説をしていきます。
まず、前提としてfork関数について知ってもらわないといけないので説明しておきますね。
【fork関数は、呼び出し元プロセスを複製して、子プロセス(新しいプロセス)を生成します。
fork関数を呼び出した(実行した)プロセスを親プロセス、新しく生成したプロセスを子プロセスと呼んでいます。
子プロセスにはユニークなプロセスIDが付与されます。】
http://www.c-lang.net/fork/index.htmlより引用
はい。こんな感じです。
では、このプログラムのプロセスについて解説していきます。
まず、4行目のforkで親プロセスは子プロセスを作ります。
ここで作られたプロセスを子1としましょう。
そして、5行目のforkでまたしても親プロセスは子プロセスを作ります。
ここで作られたプロセスは子2としましょう。
そして、親プロセスは6行目のプリント文でAを出力して実行を終了します。
次に子1プロセスを見ていきましょう。
子1は親プロセスによって4~8行目までがコピーされたプロセスです。
なので5行目で子1プロセスは親プロセスとなり子プロセスを作ります。
ここで作られたプロセスは子が作った子なので孫プロセスと呼ぶことにしましょう。
そして、子1プロセスは6行目のプリント文でAを出力して実行を終了します。
ちなみにここでの実行結果は
$ A
bash $ A
となっているはず。
では、子2プロセスを見ていきましょう。
子2プロセスは親プロセスによって5~8行目までがコピーされたプロセスです。
なので、子2プロセスは6行目でAを出力するだけの動作で終了します。
孫プロセスも同様で子1プロセスによって5~8行目までがコピーされたプロセスですから当然Aを出力するだけで終了します。
これで全プロセスの実行が終了しました。
実行結果は
$ A
bash $ A
$A
$A
となっているはず。
上から順に
親プロセスのA
子1プロセスのA
子2プロセスor孫プロセスのA
子2プロセスor孫プロセスのA
となっています。
以上で解説を終えます。
どうだったでしょうか?
これでforkはバッチリ??
👋🏼またね
⚔️覚え方講座⚔️ 極座標⇨直交座標
直交座標(x,y)と極座標(r, θ)
(ただし,r≧0とする.)とは,次の関係があります.
[極座標→直交座標]
x=r cosθ
y=r sinθ
これは流石にわかりますよね?
では、3次元ではどうなるんでしょうか?
直交座標(x,y,z)と極座標(r, θ,φ)
(ただし,r≧0とする.)とは,次の関係があります.
[極座標→直交座標]
x=r sinθcosφ
y=r sinθsinφ
z=r cosθ
となります。
3次元振り子の問題などでは欠かせない変換です。
んんーー。3次元ともなると頭がパンクするぅーー!
ここで、僕から覚えやすい覚え方を教えましょう!
x,y,zのsin,cosを順番に読んでいきます。
チンコ | チンチン | コ
(sincos sinsin cos)
どう?頭から離れないでしょう?
いろんな角度から勉強を攻略していこうぜ?
相棒。諦めんなよ??
( ◜ᴗ◝)