タグ

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

  • 関連タグはありません

タグの絞り込みを解除

ProgrammingとPROGRAMMINGとc言語に関するItisangoのブックマーク (49)

  • ISO/IEC JTC1/SC22/WG14 - C

    2025-03-10: projects | documents | contributing | meetings | contacts ISO/IEC JTC1/SC22/WG14 is the international standardization working group for the programming language C. The current C programming language standard (C23) ISO/IEC 9899 was adopted by ISO and IEC in 2024. To obtain the international standard, please contact your national member body. Work on projects and their milestones include

  • pthreadについて(シグナル・バリア等)

    はじめに この連載ではUNIX系OSなどで使われるスレッド「pthread」についてサンプルを交えて説明していきます。pthreadはPOSIXが仕様化したスレッドモデルです。サンプルはCと一部C++、調査環境はFedora 8(2.6.23.1-49.fc8)、32bit、glibc-4.1-2、gcc-4.1.2-33およびFedora Core 6(2.6.18-1.2798.fc6)、32bit、glibc-2.5-3、gcc-4.1.1-30を使用しています。 これまでの記事 第1回:pthreadについて(概要・生成) 第2回:pthreadについて(同期) 第3回:pthreadについて(条件変数・モデル) 第4回:pthreadについて(スレッド固有データ) 第5回:pthreadについて(スタックサイズ) 第6回:pthreadについて(スケジューリング) 第7回:pth

    pthreadについて(シグナル・バリア等)
    Itisango
    Itisango 2020/07/04
    “kill(2)同様、pthread_killも第二引数に0を設定することで、送信対象のスレッドの生存情報を得られます”←安易に信じては駄目!SEGVになりうるよ! https://qiita.com/todanano/items/715afc1811c159476d4a
  • Geekなぺーじ : Linuxネットワークプログラミング

    ここでは、Linuxを使ったネットワークプログラミングの説明を行いたいと思います。 ここで対象としている読者は、ネットワークプログラミング初心者(もしくは入門者)かつLinux環境でプログラミングを行いたい人です。 開発環境としては、C言語+gccを想定しています。 説明内容は主にソケットプログラミングになります。 なお、C言語そのものが初めての方は「C言語入門」も参考にどうぞ。Windows専用には書いてませんが主にC言語で共通の部分を解説しています。 コードを書く前の準備 まず、gccを使える状態にしないといけません。 ディストリビューションにもよりますが、Linuxを普通にインストールしただけでは開発環境は入りません。 開発環境を用意するためには、gccやglibcなどのrpmを必要に応じてインストールしてください。 次に、エディタが必要になります。 mule、emacs、xemac

  • BohYoh.com - 柴田望洋

    13,500をこえるページから構成されるサイトは、コンピュータ・プログラミング・情報処理技術者試験対策・中国武術などに関する情報が満載です。また、多くのプログラムや約1,000ページ分のPDFファイルを閲覧・ダウンロードできます。ゆっくりとご覧ください。 What's New 2023/9/5(火) ■ 『新・明解Python入門 第2版』の「索引」のPDF全17ページを公開しました。 2023/8/30(水) ■ 『新・明解Python入門 第2版』のソースプログラムを公開しました。 2023/8/29(火) ■ 著書のコーナーに、新刊『新・明解Python入門 第2版』のページを開設しました。 2023/3/6(月) ■ 著書のコーナーに、新刊『新・明解C言語実践編 第2版』のページを開設しました。 2022/9/29(木) ■ 『新・明解C言語中級編 第2版』の「索引」のPDF全1

  • #と##演算子

    文字列化演算子 マクロ関数だけで使用できる、便利な演算子が用意されています そのひとつが文字列化演算子です マクロ関数で受け取った値に対して#記号をつけることで それを文字列、すなわちダブルクォーテーションをつけた状態に置換えます (プリプロセッサディレクティブであることを忘れないでください。あくまでソース上で置き換わるだけです) #define STRING(str) #str このマクロ関数は、仮引数の値をダブルクォーテーションをつけた状態に置き換えます 次のプログラムを実行してください #include <stdio.h> #define PRINT(str) printf(#str "\n") #define STRING(str) #str int main() { PRINT(Kitty on your lap); printf("%sバイトは1キロバイト" , STRING(

  • 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」
  • 2016年、C言語はどう書くべきか (後編) | POSTD

    (前編はこちら: 2016年、C言語はどう書くべきか (前編) ) (編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) システム依存の型 まだ「32 bitのプラットフォームでは32 bitのlong型、64 bitのプラットフォームでは64 bitのlong型がいい」という不満があるようですね。 プラットフォームに依存する2つの異なるサイズを使うため、 故意に コードを難しくすることを考えたくなければ、システム依存の型のために long を使おうとは思わないでしょう。 この状況では、プラットフォームのためにポインタ値を保持する整数型、 intptr_t を使うべきです。 モダン32-bitプラットフォームでは、 intptr_t は int32_t です。 モダン64-bitプラットフォームでは、 intptr_t は int64_t です。 int

    2016年、C言語はどう書くべきか (後編) | POSTD
  • 2016年、C言語はどう書くべきか (前編) | POSTD

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

    2016年、C言語はどう書くべきか (前編) | POSTD
  • Gitのつくりかた | メルカリエンジニアリング

    はじめまして。サーバサイドエンジニアの @DQNEO です。 今日はGitのつくりかたをご紹介します。 C言語学習教材としてのGit Gitと同じものをゼロから作って何の意味があるのか?と思いますよね。 私がこの再発明をやり始めた動機は「C言語を書けるようになりたい」でした。 実際に途中までやってみたところ、 C言語がチョットデキるようになった Gitの内部構造に詳しくなった というメリットが得られました。 C言語を勉強する題材は、テトリスとかWebサーバとか他にいくらでもあるのですが、Gitを実装してみるのはかなりおすすめです。理由は下記の通りです。 内部構造が意外と単純 (ローカルで動かす分には)ネットワークの知識が不要 普段使っているツールで外部仕様がわかっているので、やるべきことが明確 余談ですが、家Gitのソースコードを参考にしようと思って読んでいたら、Linus Tovals

    Gitのつくりかた | メルカリエンジニアリング
  • C言語パズル集:Cにまつわる興味深い問題あれこれ | POSTD

    ビジターの皆さんへ C言語に関心を寄せていただきありがとうございます。このページは、C言語の面白い問題、パズルのリストです。これまでに友人たちからeメールで送ってもらったり、で読んだり、インターネットで見つけたり、あるいは自分でC言語でコーディングしていて気づいたりしたプログラムを集めました。 多くのプログラムは、コンパイル、実行され、その振る舞いを示すものです。問題は大まかに次のカテゴリに分けられます。 一般的なタイポエラー。C言語プログラマが頻繁に犯すミスであり、かつ追跡が困難。 初見では非常に理解しがたい小さなプログラム。これらの問題は、他人が書いた優れたコードを読み解く良い訓練になります。 また、全てにGnu/Linux/gccを使っています。掲載順は、それぞれの難易度とは関係ありません。問題解決の助けが必要な場合は、気軽に私に問い合わせてください。連絡先は こちら です。また、

    C言語パズル集:Cにまつわる興味深い問題あれこれ | POSTD
  • Mac、iOSで、rand()関数の疑似乱数アルゴリズムがヘン! - Qiita

    話の発端は、StackOverflowの、この質問にあった。 StackOverflow語版 - c言語での乱数生成 質問に対する回答は、きわめて単純で、rand()関数を、取得したい乱数の個数分、呼んでやりましょうというもの。 いちおう、XcodeのCommand Line Toolで、サンプルコードを作って、それを実行してみて、ちゃんと意図したとおりの結果になることを確認する。が、ここで奇妙なことに気づく。 何度実行しても、初項が4になる。 試しに、こんなC言語のコードを書いて、Xcodeで実行してみる。 # include <stdio.h> # include <stdlib.h> # include <time.h> int main(int argc, const char * argv[]) { unsigned int i; unsigned int seed = (

    Mac、iOSで、rand()関数の疑似乱数アルゴリズムがヘン! - Qiita
  • C言語 & C++

    Hatada's Home Page トップ デジタル回路 音響・音声信号処理 言語処理 機械学習&整数計画 数学・アルゴリズム C言語 & C++ Windows C .NET & C# Java JavaScript PS & WSH & VBS Python アセンブリ言語 シェル&バッチ HTML & CSS ネットワーク データベース LibreOffice FP 新地図システム 地図システム 画像 システム 資料・リンク 雑記 旧版倉庫 索引 C言語入門 マクロ データの読み込み(scanf関数) 数値・文字列変換 算術演算 論理演算 ビット単位のAND/OR演算 シフト演算 配列 配列をポインタで走査する 構造体 共用体(union) ポインタ アルゴリズム 多角形に点が含まれるかどうか判定する シャッフル(配列の要素をランダムに並び替える) ファイル ディレクトリ内のファイ

  • 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
  • Makefile の書き方 (C 言語) — WTOPIA v1.0 documentation

    makeってなに?¶ ソースファイルを分割して大規模なプログラムを作成していると, コマンドでコンパイルするのが面倒である. また, 一部のソースファイルを書き換えだけなのに全部をコンパイルし直すのは時間の無駄である. そんな問題を解決するのが make である. Makefile と呼ばれるテキストファイルに必要なファイルと各ファイルのコンパイルのコマンド, ファイル間の依存関係を記す. そして, “make” というコマンドを実行するだけで, 自動的にコマンドを実行してコンパイルしてくれる. これだけではスクリプトと大差がないのだが, make は Makefile に記された依存関係に基づいて更新されたファイルの内関連のあるものだけを更新することで, コンパイル時間を短くする. make は特定のプログラミング言語に依存したものではない. C 言語のソースファイルのコンパイルにも使え

  • プログラミング言語 C の新機能

    7. 文法一般 この章では C 言語に新たに加えられた指示付きの初期化子や複合リテラルといった文法や、暗黙時の宣言に関する変更といった、変更された文法について説明します。 7.1 暗黙の関数宣言 現在の C 言語の規格では、ある関数から他の関数を呼び出す時、とくにその関数のプロトタイプを宣言しなくても使用することができました。例えば stdio.h を読み込まずに、printf を使用するといったことです。しかし、今度の C 言語ではそのような場合、その関数の呼び出しは規格上未定義の動作となります。ただ実際には多くの処理系では警告を出してコンパイルするよう実装されることでしょう。この辺の機能は C++ に近くなっていますね。 7.2 宣言時の暗黙の型 手続き型言語では、一般的に変数や関数などを宣言して使用する必要があります。もちろん C 言語も例外ではありません。しかし C 言語では特に型

  • 15から17くらいまでに覚えたZ80と8086アセンブラとC言語は今でもなんら苦もなくコーディングできるのに

    15から17くらいまでに覚えたZ80と8086アセンブラとC言語は今でもなんら苦もなくコーディングできるのに、VisualBasicとかlinuxのシェルスクリプトとかPythonrubyとかは、一ヶ月二ヶ月と時期開けると前に覚えた知識がほぼ飛んでいるのはなぜだ。理解に苦しむぞ俺。 ってか、便利とか使いやすいとか開発が現在でも進行中とかいろいろ理由づけしても、俺個人の心の根っこのところでは無意識的に『どうせ下まで降りてけばEAXにロードしてALUでポンしてストアだろwww』とか考えてるから、一生懸命やってるようで実はどうでもよく流してしまってるんだろうなぁ。どうしたら旧日産みたいに『変わらなきゃ!!』とかに心身ともに変革できるかわからん。ツイートする

  • 今、Cで開発するためのスタンダードを知るための本 - L'eclat des jours(2013-09-30)

    _ 今、Cで開発するためのスタンダードを知るための 例によってアスキーの鈴木さんから、をもらった。花井さんのモダンC言語プログラミングだ。なお、似たような題の洋書があって、しかも花井さんは翻訳もするので、そのの翻訳書と勘違いされる可能性もありそうだが、完全にオリジナルだ。 Cは、Unixと共に(というか少し遅れて)生まれたということは、すでに40年以上の歴史があり、それだけの年月がたてば、COBOLなどと同じく老害言語と言われてもこれっぽっちもおかしくはない。 ところが、COBOLと異なり開発者市場がどんどん先細り(あるいは固定化)されるということはなく、むしろ増えている。それどころか最近の調査では最も利用されている(TIOBE 2013)。 一方、C++が先鞭をつけたビジネスプログラミングへのオブジェクト指向プログラミングの適用は、Java、Objective-C、C#と種類を増や

    Itisango
    Itisango 2013/10/02
    “デザインパターンを適用する方法について詳説する。当然ステートパターン、効率云々”
  • Language C FAQ

    C言語 FAQ 日語訳 このページは北野 欽一さんが日語訳されたC FAQをHTML化したものです。 著作権等に関しては「C言語FAQと日語版について」をご覧ください

  • MISRA C - Wikipedia

    MISRA CはMISRA (Motor Industry Software Reliability Association、ミスラ) が開発したC言語のためのソフトウェア設計標準規格である。ANSI/ISO/IEC規格のC言語で記述する組み込みシステムで、安全性と可搬性 (ポータビリティ、移植性) と信頼性を確保することを目的としている。 C言語規格では、ソフトウェアをCPUやオペレーティングシステム (OS) の種類にかかわらず移植できるようにするために、言語規格ではあえて厳密に仕様を定めず、処理系定義 (implementation-defined)、未定義 (undefined)、未規定 (unspecified) の動作 (behavior) など、CPU/OSおよびコンパイラごとに取り決めをする事項があり、他の言語と比べると非常に多い。たとえば代表的なものとして組み込み整数型の

  • GDB マニュアル - Table of Contents

    GDB の要約 「GNU 一般公有使用許諾書」の和訳文書と再配布について ** 和文文書についての注意 ** 和文文書自体の再配布に関して GNU 一般公有使用許諾書 はじめに GNU 一般公有使用許諾の下での複製、頒布、変更に関する条項と条件 付録: あなたの新しいプログラムにこれらの条項を適用する方� 訳者の序 GDB の入出力の慣例 GDB が扱うファイルの解説 引数によるファイルの指定 コマンドによるファイルの指定 デバッグのためのプログラムのコンパイル方� GDB の下でのプログラム実行方� あなたのプログラムに渡す引数 あなたのプログラムの環境 あなたのプログラムのワーキングディレクトリ あなたのプログラムへの入出力 既に起動しているプロセスのデバッギング チャイルドプロセスを kill するには 停止と継続 シグナル ブレークポイント ブレークポイントの設定方� ブレークポイ