タグ

関連タグで絞り込む (357)

タグの絞り込みを解除

プログラミングに関するiwwのブックマーク (1,852)

  • mmapでMAP_FIXEDを利用する方法

    mmapMAP_FIXEDを利用する方法を紹介します。 1.はじめに mmapはファイルの内容をメモリにマップするC/C++の関数です。 mmapの引数は、 void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); となっています。各引数の意味は次のとおりです。 addr:新しいマッピングの開始アドレス length:マッピングの長さ prot:マッピングのメモリ保護 flags:マッピングに対する更新の見え方 offset:マッピング開始位置 manによるとmmapは次のような動作になります。 addr が NULL の場合、カーネルがマッピングを作成するアドレスを選択する。この方法は最も移植性のある新 しいマッピングの作成方法である。 addr が NULL でない場合、カーネル

    mmapでMAP_FIXEDを利用する方法
  • Arduino日本語リファレンス

    Arduino言語 Arduino言語はC/C++をベースにしており、C言語のすべての構造と、いくつかのC++の機能をサポートしています。また、AVR Libcにリンクされていて、その関数を利用できます。 setup() loop() 制御文 if if else switch case for while do while break continue return goto 基的な文法 ; (セミコロン) {} (波カッコ) コメント #define #include 算術演算子 + - * / % (剰余) = (代入) 比較演算子 == != < > <= >= ブール演算子 && (論理積) || (論理和) ! (否定) ビット演算子 ビット演算子は変数をビットのレベルで計算するためのものです。ビット演算子によって、広範囲なプログラミング上の問題を解決することができます。 &

  • アドレス部の先頭1bitが送信されない(I2C) - Forum - RX MCU - Renesas Community

  • SRecord 1.65

    The SRecord package is a collection of powerful tools for manipulating EPROM load files. It was written by Peter Miller and continues to be maintained by Scott Finneran. This website, very much a product of its time is kept as close as possible to Peter's original in memoriam. I wrote SRecord because when I was looking for programs to manipulate EPROM load files, I could not find very many. The on

  • データを送受信をするIoTデバイスの作り方 [ESP-WROOM-02版]

    USBシリアル変換モジュールを使用してArduinoスケッチを「ESP-WROOM-02」に書き込んで「Wifi接続」「ネット上のファイルの取得」「GET/POST」を実行する方法です。 スケッチの書き込み後は「ESP-WROOM-02」だけで動作します。

    データを送受信をするIoTデバイスの作り方 [ESP-WROOM-02版]
  • ESP-WROOM-02 Arduino互換ボードでサクッとHTTP通信できたよ - Qiita

    スイッチサイエンス製 ESP-WROOM-02 Arduino互換ボード スイッチサイエンスからESP-WROOM-02 Arduino互換ボードが発売されました。今まではESP-WROOM-02(ESP8266)をArduinoのスケッチを書き込んで使うためには、モジュールをはんだ付けしてブレッドボード上で使用したりと少々使いづらい部分がありました。それをこの互換ボードが解消してくれます ESP-WROOM-02 Arduino互換ボード ESP8266 Arduino CoreでHTTP通信をサクッとやってしまおう Arduino IDEでESP8266の開発を行うときに使うライブラリESP8266 Arduino Coreには、HTTP通信にかぎらず便利な機能が用意されています。Arduino IDEのメニューから[ファイル]→[スケッチの例]にESP8266関連のサンプルがずらっと

    ESP-WROOM-02 Arduino互換ボードでサクッとHTTP通信できたよ - Qiita
  • ESP HTTP Client - ESP32 - — ESP-IDF Programming Guide v5.3 documentation

  • ネットワーク - TCP - boostjp

    インデックス 接続 接続待機 メッセージ送信 メッセージ受信 名前解決して接続 タイムアウトを設定する 接続 同期バージョン 同期バージョンの接続には、boost::asio::ip::tcp::socketクラスのconnect()メンバ関数を使用する。 接続先の情報はtcp::endpointに、IPアドレス文字列と、ポート番号の2つを指定する。 connect()の第2引数としてerror_codeを渡した場合には、接続失敗時にエラー情報がerror_code変数に格納される。 error_codeを渡さなかった場合には、接続失敗時にboost::system::system_errorが例外として投げられる。 #include <iostream> #include <boost/asio.hpp> namespace asio = boost::asio; using asio:

  • boost.asioのタイムアウト処理を綺麗に書く方法教えて! - Qiita

    はじめに boost.Asioでは、非同期処理のタイムアウト処理を当然行うことが出来るが 一般的なソケットのような、関数にタイムアウト時間を設定するような簡易な方法ではない 非同期処理とは別に、タイマーWaitを非同期で書き、非同期処理が終了すればタイマーをキャンセルし タイマーが先に来れば 非同期処理をキャンセルしタイムアウト処理を行う という 冗長な処理が必要である それを、どのようにラップすればきれいに書けるのか?という話 まずはベタに書いてみる // タイムアウトを設定 deadline_timer.expires_from_now( boost::posix_time::milliseconds(timeout_ms)); deadline_timer.async_wait( [=](const boost::system::error_code &ec) { // タイムアウト

    boost.asioのタイムアウト処理を綺麗に書く方法教えて! - Qiita
    iww
    iww 2021/04/12
    タイムアウトが大変 という話
  • Boost.Asio 非同期処理のタイムアウトを設定する - Faith and Brave - C++で遊ぼう

    タイムアウトには、async系メソッドと別にdeadline_timerを動かし、タイムアウトを設定します。 タイムアウトの前に非同期処理が完了した場合はdeadline_timer::cancel()を呼び、タイムアウト用のタイマーをキャンセルします。 そうすると、タイムアウトのハンドラが呼ばれなくなる・・・のではなく!タイムアウトのハンドラにエラー(boost::asio::error::operation_aborted)が渡されるので、タイムアウトハンドラがエラーじゃなかった場合に実際のタイムアウト処理を行います。 以下、サンプルコード: #include <boost/asio.hpp> #include <boost/bind.hpp> #include <iostream> namespace asio = boost::asio; class Client { asio::

    Boost.Asio 非同期処理のタイムアウトを設定する - Faith and Brave - C++で遊ぼう
    iww
    iww 2021/04/12
    タイムアウトが大変 という話
  • gdbでポリモーフィズムにおける実際のクラス情報を取得する - Qiita

    結論 C++をgdbでデバッグする時(特にポリモーフィズム使ってる場合)は、下記の設定をするとわかりやすいです。 gdb manual 背景 C++でポリモーフィズムすると、デバッグ時に実際のクラスがぱっと見わからなくて困ることがあります。 例として、以下のようなプログラムを考えます。 Animalクラスを基底クラスとして、そこから継承したクラスをいくつか定義しています。 それらのインスタンスへのポインタをstd::vectorでまとめて、 Chorus関数にてポリモーフィズムを使ったMakeSound呼出をしています。 #include <iostream> #include <memory> #include <vector> class Animal { public: virtual ~Animal() {} virtual void MakeSound() const { std

    gdbでポリモーフィズムにおける実際のクラス情報を取得する - Qiita
  • Linuxのmmcドライバ概要 - Qiita

    Linux Kernelのmmcドライバを調べる機会があったので、メモ代わりに概要をまとめてみたいと思います。 (Kernelバージョンは4.1をベースに記述しています) はじめに mmcドライバとは、Linuxのストレージデバイスドライバの一つです。 eMMCやSDカードといったデバイスをLinuxで扱うためのドライバとなっています。 以下のような処理を担っています。 ハードの初期化処理 接続されているデバイスの認識やスピードモードの設定 SDカードか、eMMCか SDホストコントローラの認識 ファイルシステムや上位層からのデータ転送要求の処理 mmcドライバの構造 mmcドライバのソースは、以下に格納されています。 mmcドライバは下図のように構成されています。 mmcブロック・キュードライバ この部分では、上位のブロックI/O処理部から受けた要求を、キュードライバがキューで管理します

    Linuxのmmcドライバ概要 - Qiita
  • コミット対象をよりわけるのをやめてみよう - 日々常々

    git add {ファイル名} でステージングするファイル単位で選べます。10ファイル変更しててそのうち3ファイルだけコミットしたい時とかに便利です。 git add -p でステージングする変更を行の塊単位で選べます。関係ないコメントを足しちゃったのとか、うっかりついでに変えてしまった変更をコミットから避けたり、別のコミットにしたい時とかに便利です。 間違いなく便利な機能ではあるんだけど、常用するものじゃないと思ってます。 なので git add -A を基にする。 ……とか言いつつ git add . を常用している私。単にタイプ数と手の慣れ。ちなみにgitのaliasは使わない派です。これは違う環境でコマンド叩く機会が多かったりする都合です。 理由 を並べてみます。 コミット対象を選択するのがいちいちブロッキングなので時間がかかる 10ファイルの変更から3ファイル選択する時間は g

    コミット対象をよりわけるのをやめてみよう - 日々常々
    iww
    iww 2021/04/01
    エイプリルフールネタかと思ったけど違った
  • セマンティック バージョニング 2.0.0

    セマンティック バージョニング 2.0.0 概要 バージョンナンバーは、メジャー.マイナー.パッチ とし、バージョンを上げるには、 APIの変更に互換性のない場合はメジャーバージョンを、 後方互換性があり機能性を追加した場合はマイナーバージョンを、 後方互換性を伴うバグ修正をした場合はパッチバージョンを上げます。 プレリリースやビルドナンバーなどのラベルに関しては、メジャー.マイナー.パッチ の形式を拡張する形で利用することができます。 導入 ソフトウェア・マネージメントの世界には、「依存性地獄」と呼ばれる恐ろしいものがあります。あなたのシステムが大きく成長すればするほど、さまざまなパッケージを組み込めば組み込むほど、自分が地獄の底にいることにいつか気づくでしょう。 多くの依存性を有しているシステムにとって、新しいバージョンがリリースされることは悪夢でしかありません。厳密に依存関係を指定し

    iww
    iww 2021/03/30
    『APIの変更に互換性のない場合はメジャーバージョンを、 後方互換性があり機能性を追加した場合はマイナーバージョンを、 後方互換性を伴うバグ修正をした場合はパッチバージョンを上げます。』
  • 2分間コーディングのすすめ、コードを書く習慣のハードルを下げる

    最近私は「2分間コーディング」と呼んでいる取り組みを行っています。文字通り2分間で完了する程度の、非常に簡単なコーディング作業を繰り返すことで、 技術書の最初のページの数行のコードだけ写経して走らせる ネットで見つけたサンプルコードをコピペして走らせる など、多くはコピペするだけで終了するくらいの作業量です。しかし、その頻度を今までの何倍にも増やすのがポイントです。実際にはやっているうちに気分が乗って、そのまま5分、15分以上とコーディングが続くことも多いのですが「まずは2分で終わることだけを始める!」と強く意識することで、コーディングの頻度が大きく増えました。 この記事では、私にとって2分間コーディングがどういう効果があったか、なぜ取り組みを始めたかを紹介します。 効果: 新しい技術を覚えやすくなった 2分間コーディングを始めてから、今まで公式ドキュメントやを読んだだけで終わってしまい

    iww
    iww 2021/03/29
    for文の書き方をググってるうちに2分終わってしまう
  • getopt関数の利用 - コマンドラインオプションの処理 - 碧色工房

    コマンドラインオプションの処理を行おうと思うと、 main関数の引数を利用すれば良く、 あとは自分で決めたルールに従いパースすればよい。 ただ、各プログラムごとに必要となる引数やその意味などは異なって当たり前だが、 引数の与え方、引数のフォーマット、という観点では、 ある程度標準的な方法をとった方がプログラマ・ユーザ双方にとってメリットがある。 例えばlsというコマンドで、"."から始まる隠しファイルも含めて表示させるオプションは-a、 パーミッション情報など詳細情報を表示させるオプションは -l である。 両方のオプションを同時に指定する場合は、 ls -a -l や ls -l -a と、どちらを先に指定してもよいし、 ls -la といった形でまとめて指定しても同じ意味になる。 また、コンパイルで利用するgccでは、gcc -o hoge hoge.cといった形で、 -oオプションの

    getopt関数の利用 - コマンドラインオプションの処理 - 碧色工房
  • フォーマット指定子一覧

    フォーマット指定子一覧 フォーマット指定子とは、C言語のprintf()、fprintf()、sprintf()、scanf()、fscanf()、sscanf()などの関数で使用する、 表示形式を指定するための記述子である。 C言語専用と思っていると、MFC(C++)のCStringクラスやjavaFormatterクラス(jdk1.5以降)にも使用されていたりして、 やはりしっかり覚えておかなくては、と思わせられることもある(詳細は異なるが)。 度忘れした際にはここを見ればよいように、よく使うフォーマット指定子をここにまとめておく。 なお、ANSI規格での全貌を知りたいときは、fprintfのリファレンス等を参照のこと。 出力フォーマット指定子 printf(),fprintf(),sprintf()などで使用する指定子である。

  • http://www.c-tipsref.com/reference/stdlib/strtoul.html

  • strtoul

    文字列をunsigned long値に変換(エラー検出、基数指定あり) 【書式】 #include <stdlib.h> unsigned long strtoul(const char *s, char **endptr, int base); 【説明】 文字列 s を、baseで指定された基数でunsigned long型に変換し返却します。このとき、文字列中に変換不可能 な文字があった場合には、その文字列のポインタをendptrに格納します。 atol関数は、単に文字列を10進のlong型変数に変換するのみで、文字列中に変換不可能な文字があった ときには対応できませんが、strtoulを使うと、変換可能な部分についてはきちんと変換し、変換不可能な 部分についても情報を得ることができます。更に、baseを指定することにより、好きな基数で変換す ることができます。 結果がunsigned

  • 「正直9年経ったいまでもfor文ググってる」 - Qiita

    「正直9年経ったいまでもfor文ググってる」 という議論記事があった。正直なところ私もググる方の人だ。私の感想: ポンとテキストエディタだけ渡された時に書けるか自信ないぞ...IDEがあればまあ大丈夫かなあ。 JavaScriptだけじゃない。言語色々扱うしという言い訳。正規表現とか毎度調べる。 だから世の中にチートシートというものがあるのだ。お気に入りチートシート多数。 実戦でどうしているか?結局周りのソースを見て馴染む書き方にしていますよ多分。 暗記するかしないかは受験勉強みたいなもので、コーディング面接に受かるなら必要。暗記そのものには意味はないとは思う。 競技プログラミングが使えないとかいう論もあったな。 ググり力も大事。 でも「最低限」もできないのはやはり恥ずかしい気持ちはある。 なんかこれ英語できるできないと似てるな。英語なんてGoogle翻訳、DeepL翻訳あればいいけど、実

    「正直9年経ったいまでもfor文ググってる」 - Qiita
    iww
    iww 2021/03/25
    メイン言語じゃないと良くある。 代入やif文レベルでも普通に過去の自分のプログラム見る