タグ

cに関するheavenshellのブックマーク (54)

  • A Modern C Development Environment

    Webinar: How New IoT Security Regulations Will Shape the Industry’s Future - Tuesday, Sept. 17th @ 9AM PT | 12PM ET | 6PM CET | RSVP Now Sometimes, C/C++ projects have a long development cycle. When working on such a project, it can be easy to take our development environment for granted, and forget about the effort invested in its bring-up. The build environment works like magic, the test framewo

    A Modern C Development Environment
  • ソフトウェア1 (2020)

    ソフトウェア1 (2020)¶ サイトは、東京大学工学部電子情報工学科・電気電子工学科の進学内定者(2年生、A1ターム)を主たる対象としたソフトウェア1の講義ページです。C言語の基礎を勉強します。 電気系の学科のslackにて講義に関する通知を行うので、常時学科slackをチェックするようにしてください。 電気系の2年生は最初のオリエンテーションで全員slackに招待されるはずですが、もし招待されていなければ松井まで連絡してください。 3年生は既に全員招待済みのはずです。電気系以外の履修者、および4年生は招待されていないので、松井まで個別に連絡してください。 サイトは2020年度版です。2021年度版はこちら。 ニュース¶ [2020.11.16] Q&Aにweek7を追加しました。 [2020.11.12] week7、およびバージョン管理を追加しました。 [2020.11.09]

  • GitHub - jarun/nnn: n³ The unorthodox terminal file manager

    Quality Privacy-aware (no unconfirmed user data collection) POSIX-compliant, follows Linux kernel coding style Highly optimized, static analysis integrated code Frugal Typically needs less than 3.5MB resident memory Works with 8 colors (and xterm 256 colors) Disk-IO sensitive (few disk reads and writes) No FPU usage (all integer maths, even for file size) Minimizes screen refresh with fast line re

    GitHub - jarun/nnn: n³ The unorthodox terminal file manager
    heavenshell
    heavenshell 2020/08/19
    C で書かれたファイルマネージャー
  • Big Sky :: C言語から分かりやすいAPIで扱える JSON パーサ「cJSON」

    おなじみC/C++から使えるJSONライブラリを紹介するコーナー。まずは過去のまとめ。 最速と言われる JSON パーサ「rapidjson」が当に爆速なのか試してみた。 C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。 僕がboost::asioとboost::property_treeを使いHTTPプロキシ環境下で非同期にGoogle Search APIから検索するまでにやった、たった一つの事。 C言語から使えるJSONパーサ、JSMNを試してみた。 何も見ずにC++でjsonパーサが書けるか試してみた。 ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い! C言語から使えるJSONパーサ、jansson がとても直感的で良い Big Sky :: C++ で STL フレンドリに扱えるJSONパーサ「json.hpp」 結

    Big Sky :: C言語から分かりやすいAPIで扱える JSON パーサ「cJSON」
    heavenshell
    heavenshell 2017/05/10
    JSON パーサーソムリエの新作
  • Cのプロダクトを作るためにやったこと - Tomohisa Oda

    今年に入って Octopassというプロダクトを公開しました。それは、Linuxのユーザや権限をGithubのTeamと連携して運用を楽にするというツールでした。色んな方々のご協力により、多くのRetweetやはてぶいただいたことで、ある程度、Octopass を必要としそうな人の目に触れたのではないかと思っています。(Githubのスター数が少ないのは今後の課題)その中で「すごく便利」「ぜひ導入したい」というフィードバックは、継続して機能追加していくというモチベーションにつながっていて、非常にありがたいです。 さて、この Octopass は、Linuxユーザ名前解決をするためにの glibc の libnssモジュールをCで実装しています。cgoやその他の言語でShared Objectを吐き出しても良かったのですが、それだと技術的挑戦が足りないとして、触れてこなかったCに挑戦しました

    Cのプロダクトを作るためにやったこと - Tomohisa Oda
  • Big Sky :: SSE を使わなくても HTML エスケープはある程度速くできる。

    SSEを使ってHTMLエスケープを高速化してみた - k0kubun's blog 高速なHTMLエスケープをするライブラリを作った ある日HTMLエスケープを速くしたくなって、hescapeというライブラリを作った。 github.com とにかく速いHTMLエスケープがしたい R... http://k0kubun.hatenablog.com/entry/hescape 以前、moznion 氏の petit-html-escaper を勝手に高速化した時の話。 GitHub - moznion/petit-html-escaper: A simple and small escaper for HTML with SSE4.2 function Author moznion ( moznion@gmail.com ) mattn License The MIT License (M

    Big Sky :: SSE を使わなくても HTML エスケープはある程度速くできる。
  • Balde — A microframework for C based on GLib and bad intentions.

    #include <balde.h> balde_response_t* hello(balde_app_t *app, balde_request_t *request) { return balde_make_response("Hello World! I'm the balde! :D"); } int main(int argc, char **argv) { balde_app_t *app = balde_app_init(); balde_app_add_url_rule(app, "hello", "/", BALDE_HTTP_GET, hello); balde_app_run(app); balde_app_free(app); return 0; } It is designed to be fast, simple, and memory efficient.

    heavenshell
    heavenshell 2016/05/30
    "A microframework for C based on GLib and bad intentions."
  • GitHub - jserv/facebooc: Yet another Facebook clone written in C

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - jserv/facebooc: Yet another Facebook clone written in C
    heavenshell
    heavenshell 2016/05/14
    "Yet another Facebook clone written in C"
  • GitHub - newtmq/newtmq-server: yet another STOMP server which is aimed to be low latency and perform high-throughput

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - newtmq/newtmq-server: yet another STOMP server which is aimed to be low latency and perform high-throughput
    heavenshell
    heavenshell 2016/05/09
    "yet another STOMP server which is aimed to be high response speed and perform high-throughput"
  • 2016年、C言語はどう書くべきか (前編) | POSTD

    (訳注:2016/3/2、いただいた翻訳フィードバックをもとに記事を修正いたしました。) (訳注:著者のMattより、「文中で明言はしていないが、この記事の内容はx86-64 Unix/Linux/POSIXでアプリケーションをプログラミングする場合にフォーカスしている。他のプログラミング領域では、対象とするシステムに応じた(例: 8-bitの組み込みシステム、10年前のコンパイラ、多くの異なるCPUアーキテクチャで動く必要のあるアプリケーション、Win/Linuxでのビルド互換性など)特有のアドバイスが必要」との補足を頂いております。) 以下の文章は2015年の始めに書いたドラフトで、今まで公開していませんでした。私のドラフト用フォルダの中で誰の目も引かなかったため、大部分が書いた時のままです。公開するにあたり、単純に2015年を2016年に変更しました。 必要な修正、改善、苦情があり

    2016年、C言語はどう書くべきか (前編) | POSTD
  • ポインタレス(Pointer-less)・プログラミング - Qiita

    プログラミング言語Cの特徴ってなんでしょうか?この質問に対して「ポインタ(Pointer)」を挙げる人はそれなりに居るでしょう。…たぶん居るよね。居ることにします。 他のプログラミング言語にもポインタに相当する概念(「参照(Reference)」と呼ばれることが多い)はありますが、とりわけC言語のポインタは難しいと言われること多いようです。時にはこんなコーディング規約を持ち出して、ポインタ使用が禁止されることもあるそうです。 (俺がコードを理解できないから)ポインタの使用は禁止する。 なんだか心の声が漏れ聞こえる気もしますが、そこは大人な対応で迎えましょう。ええまあ、この記事は大人げないんですけど。ルールがポインタを使うなと言うなら、私だってちゃんと従いますよ。*とか&とか危なくて使えませんよね。 準備編 ここから題。この記事では、プログラミング言語Cでポインタを一切利用しない「ポインタ

    ポインタレス(Pointer-less)・プログラミング - Qiita
    heavenshell
    heavenshell 2016/01/17
    つらい
  • GitHub - vurtun/nuklear: A single-header ANSI C gui library

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - vurtun/nuklear: A single-header ANSI C gui library
    heavenshell
    heavenshell 2015/11/26
    "A small ANSI C gui toolkit"
  • highway という高速検索ツールを作りました · けんごのお屋敷

    いまや grep、ack、ag、pt、sift など様々な grep ツールが存在し、高速 grep ツール戦線が激化している昨今ですが、いかがお過ごしでしょう。私は普段から検索ツールには pt を使っていますが、ふとしたことから文字列探索アルゴリズムに興味がわいてきて highway という高速パターンマッチングツールを開発しました。pt や sift が流行りの Go 言語で実装されている中、我が道を行く highway は C 言語での実装にしました (単に Go 言語を知らないだけとも言う\(^o^)/)。 highway (github) highway とは マルチスレッドで動作する高速パターンマッチングツールです。速そうな名前をつけたくて「高速」でググったら「高速道路」がたくさん出てきたのでこの名前になりました。そりゃそうだ。 機能 基的な機能としては pt とほぼ同じです

    highway という高速検索ツールを作りました · けんごのお屋敷
  • Big Sky :: 何もソースコードを変更せずに2038年問題を解決する。

    まず2038年問題というのをご存じでしょうか 2038年問題 - Wikipedia 2038年問題(にせんさんじゅうはちねんもんだい)は、2038年1月19日3時14分7秒(UTC、以下同様)を過ぎると、コンピュータが誤動作する可能性があるとされる年問題。 http://ja.wikipedia.org/wiki/2038%E5%B9%B4%E5%95%8F%E9%A1%8C C言語で epoch を扱う time_t が32bit OS上でオーバーフローし日時間2038/01/19 12:14:07の次に1901/12/14 05:45:52が来てしまうという問題です。まぁそもそも2038年にもなって32bit OSを使っている側が悪いと言えばアレですが。 実際にどんな事が起きるかは、32bit OS上で以下を実行すれば分かる。 #include <stdio.h> #include

    Big Sky :: 何もソースコードを変更せずに2038年問題を解決する。
    heavenshell
    heavenshell 2015/05/29
    "おぉぉぉぉ...これで2038年にオッサンが過労死する事もなくなりますね。良かったですね。"
  • GitHub - watmough/jwHash: Simple hash table implementation for C.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - watmough/jwHash: Simple hash table implementation for C.
    heavenshell
    heavenshell 2015/05/19
    "Simple hash table implementation for C."
  • entr(1) - Run arbitrary commands when files change

    Mengungkap Keajaiban Slot Bertema Legenda Mermaids merupakan judul dari sebuah artikel kami kali ini. Kami ucapkan Selamat datang di entrproject.org, Membangun Masa Depan: Transformasi Judi Online melalui entrproject. Pada kesempatan kali ini, kami masih bersemangat untuk membahas soal Mengungkap Keajaiban Slot Bertema Legenda Mermaids. Pendahuluan Slot online dengan tema legenda mermaids (putri d

    heavenshell
    heavenshell 2015/04/16
    "Run arbitrary commands when files change"
  • C言語分かってなかった (I Do Not Know C) - Qiita

    Dmitri Gribenko氏によるBlog記事 "I Do Not Know C" より訳出。原文および訳文のライセンスは CC BY-SA 3.0 に従う。 この記事の目的は、皆に(とくにCプログラマに)「C言語分かってなかった」と言わせることです。 C言語の死角は思っているよりも身近にあり、よくある単純なコードですら 未定義動作(undefined behavior) を含む可能性があると示したいと思います。 記事は質問に対する回答の形をとります。全ての例示コードは別々のファイルに分かれていると考えてください。 (訳注:Qiita/Markdown表現の制約から、読中ネタバレ防止のため文章順序を変更しています。前半には質問のみを、後半には質問と回答の対を訳出しました。) 質問編 1.

    C言語分かってなかった (I Do Not Know C) - Qiita
  • C言語で可変長引数をとる関数を、型安全に書く方法

    C言語の可変長引数は、型安全でない(まちがった型の引数を渡してもコンパイルエラーにならない)とされています。これは言語仕様の理解としては正しいのですが、特定の型の引数を任意の個数とる関数に限っては、マクロを使うことで型安全性を確保することができます。 任意の個数のdoubleを引数にとり、その和を返す関数「sumf」を例にあげて説明します。 C言語の可変長引数機構を使ってsumfを定義すると、以下のようになります。 #include <math.h> #include <stdarg.h> #include <stdio.h> static double sumf(double nfirst, ...) { double r = 0, n; va_list args; va_start(args, nfirst); for (n = nfirst; ! isnan(n); n = va_a

  • 問.Cでオブジェクト指向プログラミングを行なえ - 株式会社CFlatの明後日スタイルのブログ

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

    問.Cでオブジェクト指向プログラミングを行なえ - 株式会社CFlatの明後日スタイルのブログ
  • sprintf を最大10倍以上高速化するプリプロセッサ「qrintf」を作った

    最近H2OというHTTPサーバを書いているのですが、プロファイルを取ってみるとsprintfが結構な時間をっていて不満に感じていました。実際、sprintfは数値や文字列をフォーマットするのに十徳ナイフ的に便利なので、HTTPサーバに限らず良く使われる(そしてCPU時間を消費しがちな)関数です。 では、sprintfを最適化すれば、様々なプログラムが より高速に動作するようになるのではないでしょうか。ということで作ったのが、qrintfです。 qrintfは、Cプリプロセッサのラッパーとしてソースコードに含まれるsprintfの呼出フォーマットを解析し、フォーマットにあわせたコードに書き換えることで、sprintfを高速化します。 たとえば、以下のようなIPv4アドレスを文字列化するコード片を sprintf( buf, "%d.%d.%d.%d", (addr >> 24) & 0xf