タグ

Cに関するnanakosoのブックマーク (60)

  • この10年のプログラミング言語の変化 - 西尾泰和のScrapbox

    @nishio: あ、そうか、10年前からあったけど10年間の間に勢力を拡大したケースがあるからあんまり厳しく切らない方がいいのか(TypeScriptの登場が2012年、Rustの登場が2010年だった)

    この10年のプログラミング言語の変化 - 西尾泰和のScrapbox
  • プログラム解析入門、もしくはC/C++を安全に書くのが難しすぎる話

    プログラム解析入門 もしくはC/C++を安全に書くのが難しすぎる話 Last updated: Jul 30, 2022 Kinuko Yasuda <@kinu>

    プログラム解析入門、もしくはC/C++を安全に書くのが難しすぎる話
  • ざっくりとしたZigの紹介

    BunのおかげでZigに注目する人が増えたように感じます。 個人的にZigを使ってる人間として紹介がてら自分のZigに対する印象を書いていきます。 どんな言語か(公式) 「堅牢で最適で再利用可能なソフトウェアを維持するための汎用プログラミング言語」 公式のより詳しい紹介はこちら Cをベースに現代的な機能を追加している Raylibのサンプルコード // raylib.comから引用(いくつかのコメントを削除) #include "raylib.h" int main(void) { const int screenWidth = 800; const int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); SetTargetFPS(60);

    ざっくりとしたZigの紹介
  • シグナルハンドラにprintf()を書いてはいけない - Qiita


     printf()    printf()  POSIX
    シグナルハンドラにprintf()を書いてはいけない - Qiita
  • https://twitter.com/yunyundetective/status/1505290944366534658

    https://twitter.com/yunyundetective/status/1505290944366534658
  • Rustの構造体メモリレイアウト - ryochack.blog

    Rustの構造体のメモリレイアウトについてのメモ。 Rustで次のような構造体を定義したときに、構造体のメモリレイアウトはどうなるか? struct Layout { b1: u8, s1: u16, b2: u8, w1: u32, b3: u8, w2: u32, s2: u16, s3: u16, } 検証時のRustのバージョンは次の通り。 stable-x86_64-unknown-linux-gnu rustc 1.24.1 (d3ae9a9e0 2018-02-27) TL;DR 先に結論を書く。 アトリビュート指定によって構造体のメモリレイアウトとサイズは以下のように変化する。 デフォルト 構造体サイズ20Byte repr(C)アトリビュート指定 構造体サイズ24Byte repr(packed)アトリビュート指定 構造体サイズ17Byte 以下に確認の過程を残しておく。

    Rustの構造体メモリレイアウト - ryochack.blog
  • 2020年はLinuxカーネルにおけるRust元年になるか? - YAMDAS現更新履歴


    hackaday.com 9RustCRustLinux Linux  Rust  LKML  thenewstack.io  Open Source Summit North America  VMWare  Dirk Hohndel  Rust  Hohndel  Go Rust
    2020年はLinuxカーネルにおけるRust元年になるか? - YAMDAS現更新履歴
  • C--で末尾再帰の最適化を試してみる - Qiita

    想定される読者 Haskellの処理系であるGHCをインストールしたことがある 処理系がハードディスクに残っている C言語は、まあまあ読める 言語の処理系そのものに興味がある アセンブリ言語についても、おおまかには知っている はじめに Haskellの代表的な処理系であるGHCでは、ソースコードはC--にコンパイルされる。CではなくC--を使う理由のひとつとして、処理の流れのコントロールをより自由にできることがある。一例としてC--では末尾再帰の(明示的な)最適化が非常にわかりやすく表現できることを示す。 一例を示すのみで、構文の説明などはしない。また、著者の環境(X86-64, Linux)での例であり、それ以外の環境では調整が必要かもしれない。 まちがい等々ありましたら、やさしく、ご指摘ください。 ここで紹介するコードは以下から入手できます。 C--とは C--がどんな感じなのかは、以

    C--で末尾再帰の最適化を試してみる - Qiita
  • 例え話をしないC言語のポインタの説明 | 右や左の旦那様


         Hello, World   void main() { int a; int b; int c; a = 1; b = 2; c = a + b; } #include <stdio.h>C  c = a + b
    例え話をしないC言語のポインタの説明 | 右や左の旦那様
    nanakoso
    nanakoso 2018/02/01
    C言語の説明をしてるのに特定の実行環境(OS)の話をしてるやつなんなの。仮想メモリなんて贅沢品がある前提とか富豪か。(まあ記事でgdbとか使ってるけどさあ)
  • C言語で部分適用したい!(実は、できるアーキテクチャがあるんです) - 簡潔なQ


    CCPowerPC64 System V ABI PowerPC64 System V ABILinuxPowerPC64 ABIPowerPC64 System V ABI struct Funptr { void *jump_target; /*  */ void *initial_r2; /*
    C言語で部分適用したい!(実は、できるアーキテクチャがあるんです) - 簡潔なQ
    nanakoso
    nanakoso 2016/11/22
    C言語の関数ポインタ
  • readdir_r は使ってはいけないという話 : 革命の日々 その2

    Unixの世界には readdir_r()というAPIがある。readdir()のthread safe バージョンとしばしば紹介されている。 それぞれの関数宣言は以下 http://man7.org/linux/man-pages/man3/readdir_r.3.html struct dirent *readdir(DIR *dirp); int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result); struct dirent { ino_t d_ino; /* inode number */ off_t d_off; /* not an offset; see NOTES */ unsigned short d_reclen; /* length of this record */ unsigned

    readdir_r は使ってはいけないという話 : 革命の日々 その2
  • C言語1000行以下で開発されたエディタ「Kilo」

    このほど、「antirez / kilo|GitHub」において、Salvatore Sanfilippo氏によってC言語を使い1000行以下のソースコードで開発されたエディタ「Kilo」が公開された。2条項BSDライセンスの下でオープンソース・ソフトウェアとして公開されている。ほかのライブラリに依存することなく開発されており、作業を始めてから数時間ほどで開発されたと説明がある。C言語による学習素材やエディタ開発のベースソースコードとして利用できる。 Kiloはclocを使ったカウントでコメントや空行を除いた行数が956行とされており、1000行を下回っている。開発にはcursesライブラリといった基的なライブラリも使われておらず、VT100の基的なエスケープシーケンスを使って開発されている。エディタにおける保存や終了といった操作には次のキーが割り当てられている。 Ctrl-S 保存

    C言語1000行以下で開発されたエディタ「Kilo」
    nanakoso
    nanakoso 2016/07/20
    自由書式言語の行数なんてあてになるか!(ウォーターフォール脳)
  • 論文紹介: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973–2015 - みずぴー日記


    ICSE 201640C  : The Evolution of C Programming Practices: A Study of the Unix Operating System 19732015 使: https://github.com/dspinellis/unix-history-repo  40Unix調     197266
    論文紹介: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973–2015 - みずぴー日記
  • 2016年、C言語はどう書くべきか (前編) | POSTD


    (2016/3/2) (Mattx86-64 Unix/Linux/POSIX( 8-bit10CPUWin/Linux)) 201520152016 
    2016年、C言語はどう書くべきか (前編) | POSTD
  • C言語で苦しむロックフリー入門(仮

    Please select the category that most closely reflects your concern about the presentation, so that we can review it and determine whether it violates our Terms of Use or isn't appropriate for all viewers.

    C言語で苦しむロックフリー入門(仮
  • CPU実験で自作CPUにUNIXライクOS (xv6) を移植した話 - 豆腐の豆腐和え


    CPUXCPUCPUOS (xv6) OSOS  CPUxv6 CPU CPU3 45
    CPU実験で自作CPUにUNIXライクOS (xv6) を移植した話 - 豆腐の豆腐和え
  • ポインタなしC言語の提案 - 最尤日記


    C C malloc/free pythonrubyLLJavaidentity/使 C UNIXC
    ポインタなしC言語の提案 - 最尤日記
    nanakoso
    nanakoso 2014/08/29
    そこまでしてCにこだわる必要あるのか
  • Cは偉大な言語なのだ - K.Maebashi's はてなブログ


    Life with UNIX Life with UNIXCCC(Ada)Cbegin end
    Cは偉大な言語なのだ - K.Maebashi's はてなブログ
  • エデンの園でおきたこと - steps to phantasien


    使 Ingress    Garbage Collection Advent Calendar  Advent Calendar GC GC (JavaScript)  C++ 1  WebKit  DOM  C++  C++  JavaScript 
  • NDKの後継開発キット-GDK - Happy My Life


    Android Advent Calendar 2012 1211@currycatgti Android NDKGDK Android4.1GDK AOSP(Android)Andorid4.1GDK調AOSPDKAOSPAOSP
    NDKの後継開発キット-GDK - Happy My Life
    nanakoso
    nanakoso 2012/12/11
    AndroidがLLVMベースになるかも。