タグ

Cに関するindicationのブックマーク (20)

  • xorvoid

    SectorC: A C Compiler in 512 bytes SectorC (github) is a C compiler written in x86-16 assembly that fits within the 512 byte boot sector of an x86 machine. It supports a subset of C that is large enough to write real and interesting programs. It is quite likely the smallest C compiler ever written. In a base64 encoding, it looks like this: 6gUAwAdoADAfaAAgBzH/6DABPfQYdQXoJQHr8+gjAVOJP+gSALDDqluB+9

  • モダンプログラマになれない組込みプログラマの苦悩 - Qiita

    はじめに 10年以上組込みエンジニアをしている@yagisawaです。 Qiitaのトップ記事では新しいフレームワークの使い方とかモダン言語の新しい言語仕様の解説とかが流れてきて、いつも羨ましいなーと思いながら読んでいます。 記事は組込みシステム開発をしていて経験したこと・感じたことを自虐ネタとして書き連ねていこうと思います。他ITエンジニアの人に「うわっ、可愛そう」って思ってもらうのが目標です(ぇ 各業界それぞれに悩みはあると思うので、自分たちが一番不幸とかは思っていません。おそらく隣の芝が青く見えているだけです。それよりあまり組込みの記事は見かけないので、「組込みエンジニア仕事ってこんな感じ」というのを知ってもらう意図があったりします。 内容によっては「それはあなたの設計が悪いからです」と言われてしまうようなところもあるとは思いますが、建設的なご意見は大歓迎ですが基は温かい目で見

    モダンプログラマになれない組込みプログラマの苦悩 - Qiita
    indication
    indication 2021/03/18
    ウォッチドッグが最高優先度で動いているなど胃が痛くなる。
  • リンカ

    ついに、リンカの説明をするときが来た。 ここに至るまでに、何度「リンカのところで説明する」と書いただろうか? ここまで読んできた人ならば、 リンカというものが、なにやら色々やっているんだな、というのはわかってきたのではないかと思う。 筆者が常々思っていることのひとつに、「C言語に関する書籍は、リンカの説明をおざなりにしすぎだ」というのがある。 多くのC言語の書籍は、 コンパイラがソースコードをアセンブリコードに変換します アセンブラがアセンブリコードを機械語に変換します リンカが機械語をリンクして実行ファイルが作られます と、いう解説がなされがちである。この説明を見たら、多くの人が、「え、リンクってなんですか?」と、思うに違いない。 アセンブラには、「人間が読めるニーモニックを、機械が読める機械語に変換する」みたいな、最低限の説明が付くものの、 リンカの説明は「リンクをします」のひとことだ

  • 非エンジニアでもわかるC#(シーシャープ)。C#やXamarin(ザマリン)についても語ってもらいました。 #さくマガ #さくらインターネット - さくマガ

    千代田 まどか(ちよだ まどか)さん。 通称「ちょまど」さん。IT エンジニア漫画家として活動中。2017年に行われたデベロッパーズサミットでベストスピーカー賞 総合1位受賞。Twitter(@chomado)Instagram(chomado)ホームページ(千代田まどかのブログ『ちょまど帳』) *ちょまどさんの発言は個人の見解であり所属する組織の公式見解ではありません。 ≫ 【2週間無料!】初心者でもホームページが作れる!高速・安定・快適なレンタルサーバー 以前にもインタビューを受けてくれたちょまどさんにプログラミング言語の「C#(シーシャープ)」についてお聞きしました。C# が好きすぎて転職先を決めたというエピソードもあるちょまどさんに、非エンジニアでも分かるように C# について語っていただきました。 C# は大体なんでもできるプログラミング言語 ーー早速ですが、非エンジニアからす

    非エンジニアでもわかるC#(シーシャープ)。C#やXamarin(ザマリン)についても語ってもらいました。 #さくマガ #さくらインターネット - さくマガ
    indication
    indication 2020/05/19
    C#って、C++++が組み文字になってできたって、シラナカッタ。話がそれるけど、.NET CoreでLANG環境変数を上手いこと処理して欲しい
  • CとRustで一から作るマイクロカーネルOS

    マイクロカーネルは浪漫に溢れる非常に作りがいのあるソフトウェアです。この記事は,「マイクロカーネルベースのOSの一から作ってIaaSで動かす」ことを目標に作ったマイクロカーネルベースのOS Resea(りーせあ)の設計と実装について軽くまとめた物です。 ソースコードはGitHubにあります。 マイクロカーネルとは Linuxのようなモノリシックカーネルでは色んな機能がカーネル空間で動きますが,マイクロカーネルではユーザプロセスたちが互いに通信しながらOSを作り上げます。プロセス・スレッド・仮想メモリ管理,プロセス間通信,タイマーといった必要最低限の機能だけをカーネルが担います。デバイスドライバやファイルシステムといった残りの機能は,独立したユーザプロセスとして動きます。たとえデバイスドライバが暴走しても他のコンポーネントを壊すことはないのです。マイクロカーネルは信頼性が高く,疎結合で美しい

    indication
    indication 2019/12/15
    tron系で割り込みがタスクスタックから消費されるから、計算が凄まじく面倒だったけど、メッセージだったら、上手く行けそう。凄く良いが、組み込みに持ってくにはつらいのがつらい…とりあえず、凄い。
  • C++でうっかり無限ループを書くと鼻から悪魔が出てくる - Qiita

    C++で副作用のない無限ループを書くと未定義動作になります。 「未定義動作」というのは口に出すだけでC++プログラマーを震え上がらせる力を持った言葉です。「鼻から悪魔が出てくる」という言葉で説明されるように、未定義動作を含むコードを実行した結果は何も保証することができず、バグの発見やデバッグすら困難にさせます。未定義動作下においてはコンパイラの気分によってコード片が消え、trueとfalseが同時に成立し、タイムトラベルを引き起こします1。 そのためC++ではうっかり未定義動作が埋め込まれないよう注意が払われるのが普通です。 さて、以下のC++のコードは未定義動作を引き起こします。 下の例は実際にclang/LLVMで最適化を有効にしてコンパイルするとでたらめな値を返す関数ができました。 この話をしたところ、何人かに驚かれたり異論を受け取ったりしたので、この話題について少しまとめてみました

    C++でうっかり無限ループを書くと鼻から悪魔が出てくる - Qiita
    indication
    indication 2019/01/24
    無限ループを書けないとなると、ハードウェアリセットを書けないってことか。ハードウェアリセットをするコードはそもそもC++しゃないか。
  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

    indication
    indication 2018/11/02
    素晴らしい資料
  • 技術計算用Cプログラム ソース

    注意事項(著作権ほか)( General Note ; Copyright, etc.) Q&A(使用上のヒント) 作成者 : Tomy           作成日 : 平成8年10月15日 Author : Tomy       Creation Date : Oct. 15th. 1996 最終修正日 : 平成17年11月4日 Last Alteration : Nov. 4th. 2005 完成度( Completion ) : 60%

    indication
    indication 2017/02/21
    ライブラリ
  • memcpy と memmove - a.out

    事の始まり 研究でプログラムを書いていたときの話。 ローカル(Mac OS)では問題なく動作していたプログラムが、サーバ(Linux)に移した途端なぜか Segmentation Fault でクラッシュするということがあった。 セグフォは許可されていないメモリ領域にアクセスした時に起こるエラーで、経験上 配列へのアクセスでミスをしているパターンが多い。 どうせ今回もそのパターンだろうと思ったけど、何度確認してもおかしいところは見つからない。 特にそのプログラムではきちんとテストを書いていたので、配列へのアクセスミス程度であればすぐに気づくはずだった。 埒が明かなかったので、今度は標準ライブラリの関数の使い方にミスがないかをチェックしていくことにした。 (そのプログラムでは memcpy を多用していたので、もしかすると memcpy の第1引数と第2引数の順番を間違えたのかも…と思っての

    memcpy と memmove - a.out
    indication
    indication 2015/01/14
    うーん、将来的にはまりそう。
  • 問.Cでオブジェクト指向プログラミングを行なえ - 株式会社CFlatの明後日スタイルのブログ

    問.Cでオブジェクト指向プログラミングを行なえ。ただし「オブジェクト指向プログラミング」とは、次のような特徴を持つプログラミング技法であるものとする: オブジェクトの実装はオブジェクトのユーザーからは隠蔽される(カプセル化/隠蔽) 同一型のオブジェクトと同一メソッドを与えた時、実際のメソッドの動作はオブジェクトの内容により変化する(ポリモーフィズム/多態性) なお、ユーザーが既存のオブジェクトをカスタマイズして新たなオブジェクトを作成する機能は、必要ないものとする。 この問いの狙い よく、「オブジェクト指向プログラミング」と「オブジェクト指向言語」は混同されます。が、前者はプログラムを設計する上での考え方で、後者はその考え方を容易にソースコードに書けるような仕様になっている言語の事で、全く違うものを指しています。 その証拠を示すため、「非オブジェクト指向言語」たるC言語で「オブジェクト指向

    問.Cでオブジェクト指向プログラミングを行なえ - 株式会社CFlatの明後日スタイルのブログ
    indication
    indication 2014/10/20
    書き方がc++っぽくなる。昔見たのはstructをdefineで定義して拡張してundefして再定義するやり方を見たことはある。
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    indication
    indication 2014/08/16
    メモリ管理の種類
  • 自作のC言語プログラムから,BIOS設定(CMOS)を読み書きする方法 (の調査ログ) - 主に言語とシステム開発に関して

    自作のプログラムから,BIOSの設定を変更する事は可能なのか。 例えばブートデバイス設定やブートシーケンスの設定は, ふつうはPC起動時の「BIOS設定画面」から手動で変更するわけだが, これらの項目を,自作プログラムから書き換える事はできるのか。 (1)BIOSやCMOSなど関連キーワードについて (2)自作プログラムからBIOS/CMOSにアクセスする方法 (3)具体的なサンプルコードと実現方針 (4)結論 (1)BIOSやCMOSなど関連キーワードについて簡単におさらい PCの起動の流れ: ユーザはPCの電源を入れる。 PCのマザーボードに通電する。ここで,マザーボード上には,CPU,ROMまたRAMが設置されている。 ROM内には,BIOSのプログラムが入っている。 ROMとはいえ,フラッシュメモリなので,書き換え可能である。ここの書き換えは,BIOSアップデートを意味する。 RA

    自作のC言語プログラムから,BIOS設定(CMOS)を読み書きする方法 (の調査ログ) - 主に言語とシステム開発に関して
    indication
    indication 2014/06/07
    昔のbios(10年ほど前)だったら、保護モードを無効にできた気がする
  • 第22回・国際難解Cコードコンテストの入賞コードが公開される | スラド デベロッパー

    国際難解Cコードコンテスト(International Obfuscated C Code Contest、IOCCC)第22回で入賞したソースコードが同サイトで公開された。 IOCCCは、「故意に読みづらいC言語のコードを書き、その汚さなどを競うというハッカーの奇祭」(Wikipediaより)。 複数の部門があり、それぞれ入賞コードが挙げられているが、日人では遠藤侑介(Yusuke Endoh)氏が「Most tweetable 1-liner」wおよび「Most lazy SKIer」、「Most recyclable」、「Most solid」の4部門で入賞している。それぞれのコードは遠藤氏のブログで解説されている(「Most lazy SKIer」と「Most recyclable」のコードの解説、「Most tweetable 1-liner」と「Most solid」のコード

    indication
    indication 2014/01/08
    変態…
  • crypto++でのお手軽暗号 - Y's note

    C++プログラミング入門 作者:サティア,グレゴリー,ブラウン,ダウグオライリー・ジャパンAmazon お手軽暗号 @yutakikuchi_です。 今日はcppで暗号/復号するためのエントリーを書きます。PHPPythonにはcrypt標準モジュールがありドキュメントも充実しているので簡単に暗号化できますが、cppではそれらがあまり整備されていない事もあってプログラム書く時にちょいと苦労します。尚、ここでお手軽暗号と言っているのは暗号化のブロック方式をECBで対応するためです。CBC方式でも良いのですがIVの管理も面倒だし、そもそもそこまで暗号化強度に拘らないケースを想定しています。cppでの暗号化を行う為のLibraryとしてcrypto++という様々な暗号化方式をサポートする物を利用します。 Crypto++ Library 5.6.2 - a Free C++ Class Lib

    crypto++でのお手軽暗号 - Y's note
    indication
    indication 2013/11/15
    まどかとは
  • http://www.d3.dion.ne.jp/~fut_nis/Other/index.html

    indication
    indication 2013/03/07
  • 2回目のC言語で『12ステップで作る組込みOS自作入門 』の通りに組込みOSを作ってみた - 三等兵

    12ステップで作る組込みOS自作入門 出版社 : カットシステム (2010/05) 発行日 : 2010/05 前回の初めてのC言語で『30日でできる!OS自作入門』の通りに初めてのOSを作ってみた - 三等兵は汎用OSでしたが今度は組込みOSです。参考書は『12ステップで作る組込みOS自作入門 』です。こいつぁすげえや。丁寧に仕上げられた良書でした。 「組込み」とタイトルがついているので興味を示す層が狭そうですが、プログラムを書く多くの人にとって役立つ内容だったと思います。 前回は必死にわかんないーわかんないーを連呼しつつ頭を抱えて苦行みたいな感覚でやっちゃいましたけど、今回はそんな苦労もあったからか余裕を持って楽しめました。 書ではWindowsだけではなくLinuxでも開発できるよう解説されているのでどんな環境でも問題ありません。Linux入れるのがめんどくさかった私は例によって

    2回目のC言語で『12ステップで作る組込みOS自作入門 』の通りに組込みOSを作ってみた - 三等兵
  • プログラム初心者にC言語のポインタを不本意ながら教える羽目になったなら、こう教えると良いよ - 偏見プログラマの語り!

    僕がプログラミングに触れた当時は、プログラミングといえば「まず C 言語」でした。それから 10 年以上が経ちました。学校の授業や企業の研修では未だに C 言語を教えているところがあるようです。関数型プログラミング言語という波が来ている 2012 年にもなって未だに C 言語をやっているというのはまるで進歩が無く残念な気もしますが、比較的多くのプログラマに浸透している共通言語を最初に教えるというのは、一方では喜ばしい事だと解釈する事もできるのかもしれません*1。まぁとにかく、意にせよ不意にせよ現場で プログラム初心者に C 言語を教える羽目になった 人がたくさんいて、プログラム初心者なのに C 言語を学ばざるを得なくなった 若者がたくさんいるということです。 C 言語を教えるときに避けて通れないのがポインタで、プログラム初心者が C 言語を学ぶときにやたらとつまずく人が多いのがポインタ

    プログラム初心者にC言語のポインタを不本意ながら教える羽目になったなら、こう教えると良いよ - 偏見プログラマの語り!
    indication
    indication 2012/06/11
    箱の存在があっちこっちの理解を阻害していたのか。cらしく、メモリ空間を妄想させなければならないらしい。
  • 無料サービスを使え! – 役立つ無料サービスのレビュー、まとめ、比較記事を紹介

    コンテンツへスキップ 無料「Excel」 テンプレート 比較/まとめ フリーアイコンWebサービスの比較/まとめ 無料オンラインスキャン 比較/まとめ 無料でビジネスチャット、Web会議、スケジュール管理ができるグループウェア おすすめ無料レンタルサーバーの比較 無料ストレージサービス 比較/まとめ 就職・転職には必須となる履歴書・職務経歴書 これから就職活動をスタートContinue reading フリーアイコンって何? インターネットが世界的に普及し始めて20年程度Continue reading 急にパソコンの調子が悪くなったことありませんか? この記事を読んでいるContinue reading Chat&Messenger ってどんなサービス? ビジネスチContinue reading レンタルサーバーを導入したい 企業・個人問わず、今レンタルサーバーを導Continue r

    indication
    indication 2011/06/28
    警告をエラーにする
  • 基礎文法最速マスターランキング

    What's this? Perl基礎文法最速マスター - Perl入門~サンプルコードによるPerl入門~ を発端とした各種プログラミング言語の「基礎文法最速マスター」記事の人気ランキングです. 人気ランキングは,以下の各種 Web サービスの API から得られるカウントの合計を元に作成しています. Twitter Facebook ※API の total_count の値を使用 はてなブックマーク 総記事数は 94,最終更新日は 2013-11-05T00:35:52+09:00 です. ランキング タイトル カウント 合計

    基礎文法最速マスターランキング
  • Samba smbclient―書式指定文字列に潜む脆弱性

    今回はSambaを取り上げます。Sambaは、Unix系マシンをWindowsファイル共有サーバーにするためのソフトウェアとして有名です。市販のNAS(ネットワーク接続ストレージ)の多くも、LinuxとSambaの組み合わせでその機能を実現しています。ここでは、昨年2009年に発見・修正された問題を取り上げてみましょう。 サンプルコード Sambaでは、種々のサーバープログラムと共に、サーバーに接続するためのクライアントプログラムも提供しています。今回は、そのクライアントプログラムのソースコードに含まれているcmd_get()という関数に注目しましょう。それほど長い関数ではありませんが、他の部分で定義されている関数をいろいろ呼び出しているので、それらのプロトタイプ宣言とコメント部分を一緒に並べてあります。 /* Get us the current top of the talloc st

    Samba smbclient―書式指定文字列に潜む脆弱性
  • 1