タグ

ブックマーク / qiita.com/tajima_taso (4)

  • C++の参照渡しとCのポインタの値渡しの違いをマシン語で比較してみた結果 - Qiita

    ポインタの値渡し、参照渡しはしばしば話題になる事柄なので、興味位でマシン語(アセンブリ言語)レベルの比較を行ってみました。 OS CentOS release 6.8 コンパイラ gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17) g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17) 参照渡しと値渡しの違い ググってもQiita内で調べても、詳しいエントリは既にありますので、そもそもの違いはそちらのエントリを参考にして見て下さい。 値渡し、ポインタ渡し、参照渡しの違い 要するに C言語では、あるオブジェクトへのポインタを引数として渡せば、そのポインタから参照外しをして呼び出し元のオブジェクトにアクセスができます。 ただし、それはあくまで元のオブジェクトに対して、アドレス演算子を作用させて取り出したオブジェクトのアドレス

    C++の参照渡しとCのポインタの値渡しの違いをマシン語で比較してみた結果 - Qiita
  • 原理原則で理解するbashの仕組み - Qiita

    はじめに 以前書いたエントリー、重大な脆弱性(CVE-2017-5932)で少し話題になったbash4.4の補完機能の便利な点で、bash4.4からでないとタブの補完機能のソート処理が制御できないという問題について、ソースコードレベルで調べた結果をまとめていたのですが、bashの実装そのものを深く掘り下げ過ぎてしまい、内容が膨大になったので、何回かに分けて書こうと思います。 今回はbashが起動されてからインタラクティブモードでキーボードの入力を待ち受けるまでのお話です。普段使っているbashがどのような処理を行っているのか一緒に覗いてみませんか? 検証ソースコード Bash version 4.1.0(1) release GNU bashの生誕 bashのプロセスが起動されるのはOSへのログイン時にユーザーのログインシェルがbashに設定されている場合、あるいはログイン後に明示的にba

    原理原則で理解するbashの仕組み - Qiita
  • 原理原則で理解するフォアグラウンドプロセスとバックグラウンドプロセスの違い - Qiita

    topはバックグラウンドで実行できない? 突然ですが、Unixライクな端末上での処理で下記のようになる理由はわかりますか? また、こうなってしまうのを防ぐ方法はないのでしょうか? シェルでOSを操作するときに、バックグラウンドプロセスとフォアグラウンドプロセスという言葉をしばしば耳にしていると思います。 エンジニアであれば、聞いたことがないという人はいないでしょうし、その違いも何となく知っているとは思いますが、体系的に理解する機会があまりなかったという人もいるのではないでしょうか? もともとはデーモンプロセスについてQiitaに投稿しようと思って記事を書いていたのですが、デーモンプロセスの性質上どうしてもバックグラウンドプロセスというものに言及しなければならなく、その説明も含めて一個のエントリにしてしまうと煩雑になると思い、今回はバックグラウンドプロセスにフォーカスしてみました。 上記はプ

    原理原則で理解するフォアグラウンドプロセスとバックグラウンドプロセスの違い - Qiita
  • C言語で学ぶソケットAPI入門 第1回 サーバ編 - Qiita

    TCP/IPについてはWeb技術者が、意識するしないにかかわらず利用している、 インターネットに必要不可欠な通信プロトコルの一つです。 また近年はIoTなどの普及もあり、従来のWeb技術以外の分野にも必要不可欠な知識になってきています。 そこで、ネットワークAPIのデファクトスタンダードになっている、 BSDソケットインタフェースをベースとして改めてネットワークの勉強をしていこうと思ってます。 ネットワークの仕組み、特にTCP/IPについて書かれたやドキュメントはたくさんありますが、私はソケットAPIを使ったC言語のソースコードを読んでみるまで、どんな説明をきいてもイメージがわかず、あまり仕組みが理解できなかったので基的にC言語のソースコードの流れにそいながら、使われているデータや処理に基づいて動作を回を分けて学んでいくことにします。 もちろん、完璧だとは思っておりませんので、間違って

    C言語で学ぶソケットAPI入門 第1回 サーバ編 - Qiita
  • 1