タグ

cに関するa_bickyのブックマーク (14)

  • C/C++のビルドの仕組みとライブラリ - かみのメモ

    研究でVisual C++を書くうちに、そういえばリンカとかライブラリの仕組みを理解していなかったな、と思ったので色々調べてみました。 書きやすいからという理由で説明口調の文章にしていますが、多分に間違いを含む可能性があります!(オイ) 気付いた部分があればコメントしていただけるとありがたいです。 ※ 2018/12/01 : #pragma once周りを追記しました ※ 2018/12/23 : ライブラリを使うためのビルド設定の話を追記しました スポンサーリンク もくじ 1. ビルドとは 2. C/C++のビルドの仕組み 2.1. プリプロセッサ 2.2. コンパイラ 2.3. アセンブラ 2.4. リンカ 3. ライブラリの種類と仕組み 3.1. ソースコードを配布 3.2. 静的リンク(static linking) 3.3. 動的リンク(dynamic linking) 3.4

    C/C++のビルドの仕組みとライブラリ - かみのメモ
    a_bicky
    a_bicky 2021/11/02
  • Large File Support (LFS) on RHEL

    a_bicky
    a_bicky 2013/06/23
    コンパイル時に $(getconf LFS_CFLAGS) を指定すれば 2GB の壁を超えられるらしい
  • プログラミング/C,C++/2GBより大きなファイルの扱い - PukiWiki

    この文書について † この文書では,gcc を利用している場合に C,C++ において 2GB よりも大きなサイズのファイルにアクセスするための方法を説明しています. この文書を記述するために,以下の文書を参照しました. http://www.ece.utexas.edu/~luo/linux_lfs.html http://www.turbolinux.co.jp/world/library/features/SoftwareDesign/200401/AMD64/64bit-ch3a-2.html ↑ プログラミング/C,C++/2GBより大きなファイルの扱い † とりあえず訳しておきます. IA-32 アーキテクチャでは,メモリアドレス幅が 32 ビットであるため,Linux/x86 で扱えるファイルのサイズは 2GB に制限されていることが多いです.しかしながら,Large Fil

    a_bicky
    a_bicky 2013/06/23
  • Super Technique 講座~longjmpと例外

    プログラムの流れを制御する手段として、いわゆる「構造化構文(for とか if とか)」、悪名高い「goto 文」などがあるのは周知のことだが、かなり特殊なものとして、「setjmp, longjmp」による「非ローカル分岐」と呼ばれるものがある。この「非ローカル分岐」は「非ローカル」と言うだけあって、ある関数の中から、別な関数に制御を移すことができたりする。まあ、そのために乱用すべきではなく、注意して使わなくてはならないライブラリ関数なのだが、実はこれは JavaC++ で言語の上で実装されている「例外」の基礎となるものである。だから、まずこの標準ライブラリ関数「setjmp, longjmp」について解説しよう。 → Java 講座の「例外」 setjmp, longjmp とは どうやって実現してるの? setjmp/longjmp の利用例~インタプリタ 補追1:setjmp

  • C言語のプリプロセスのメモ(Hishidama's C pre-process Memo)

    S-JIS[2006-10-30] プリプロセッサ処理 C言語の特徴のひとつに、ソースの前処理(プリプロセス)というものがある。 これは、コンパイラーがコンパイルを行う前に、プリプロセッサがプリプロセッサ命令(「#」で始まるコマンド等)を処理するもの。いわゆる「マクロ」の展開。 とても便利で強力な機能だが、下手に使うとソースがどう展開されるかさっぱり分からないことになってしまうので要注意。 プリプロセッサ命令は、基的に「#」で始まり、行末で終わる。(通常のC言語の構文では、行末かどうかは無関係だが) 「#」と命令の間にはスペースを入れてもよい。 複数行にまたがるプリプロセッサ命令を書きたい場合は、行の継続記号として、行末に「\」を置く。 また、コメントを処理(ソースから削除)するのもプリプロセッサの仕事。 gccなら「-E」オプション、VC++なら「/E」オプションを付けることにより、プ

    a_bicky
    a_bicky 2012/05/10
    マクロとかの解説
  • C tips & reference \n

    当サイトは、その名のとおりC言語の関数やマクロの使い方についての説明を主なコンテンツとしております. コーディング中に「あれ,この関数なんだっけ?」となったときや,関数をmanコマンドで調べたけれど,いまいち使い方が分からないときなどにご利用いただければ幸いです. ホームページの構成 C言語関数辞典は大きく分けて4つのコンテンツから構成されます. コンテンツ説明

  • 初級C言語Q&A

    [↑質問一覧] [ホームページ] 号別リスト コンパイラの選び方 (C MAGAZINE 1995-6) 文字列 (C MAGAZINE 1995-7) ポインタ (C MAGAZINE 1995-8) malloc, free (C MAGAZINE 1995-9) 値 (C MAGAZINE 1995-10) スタイル (C MAGAZINE 1995-11) 不定と未定義 (C MAGAZINE 1995-12) 前処理 (C MAGAZINE 1996-1) 処理系依存の問題 (C MAGAZINE 1996-2) 動かないプログラム (C MAGAZINE 1996-3) 構造体 (C MAGAZINE 1996-4) ビット操作、論理演算(C MAGAZINE 1996-5) 標準ライブラリ (C MAGAZINE 1996-6) 構造体(2) (C MAGAZINE 1996

    a_bicky
    a_bicky 2012/01/05
  • 初級C言語Q&A(4)

    初出: C MAGAZINE 1995年9月号 Updated: 1996-03-12 [←1つ前] [→1つ後] [↑質問一覧] [↑記事一覧] [ホームページ] malloc, free 動的なメモリの獲得は、C言語ではしばしば使われる手法です。ポインタの理解 が十分なら、 malloc の使い方を理解することにより、複雑なデータ構造を柔軟に処理することが可能 になるでしょう。あまり慣れない人は、十分な大きさの固定サイズの配列を用意 してしまいがちですが、 malloc 自体はそれほど難しいテクニックを必要としません。 Q 【malloc】 malloc は何と読むのか。 A 「えむあろっく」と読む人と「まろっく」と読む人を知っていますが、それ以 外の読み方は聞いたことがありません。個人的には、来の意味がmemoryを allocateする、ということなので、m+allocと考えるの

  • プロセス、実行形式、リンク

    2009年12月01日 情報科学類 オペレーティングシステム II 筑波大学 システム情報工学研究科 コンピュータサイエンス専攻, 電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp> このページは、次の URL にあります。 http://www.coins.tsukuba.ac.jp/~yas/coins/literacy-2009/2009-12-01 あるいは、次のページから手繰っていくこともできます。 http://www.coins.tsukuba.ac.jp/~yas/ http://www.cs.tsukuba.ac.jp/~yas/ ■今日の大事な話 execve() システム・コール ELF形式 nm コマンド リンク ◆参考書 Claudia Salzberg Rodriguez, Gordon Fischer, and Steven Smolsk

  • C言語アプリケーションに Pythonを組み込む - ふにゃるんv2

    ネットを ぼ〜っと回っていると、↓こんなのを見つけた。 Embedding Python in Your C Programs | Linux Journal http://www.linuxjournal.com/article/8497 そういや、似たようなのを公式ドキュメントでも見たなぁ、と思い出す。あった、あった。 Python インタプリタの拡張と埋め込み http://www.python.jp/doc/nightly/ext/ext.html 5.1 高水準の埋め込み http://www.python.jp/doc/nightly/ext/high-level-embedding.html Python/C API リファレンスマニュアル http://www.python.jp/doc/release/api/api.html 2. 超高レベルレイヤ http://www

    C言語アプリケーションに Pythonを組み込む - ふにゃるんv2
  • Embedding Python in Your C Programs | Linux Journal

    The language of choice for large, high-performance applications in Linux is almost always C, or somewhat less often C++. Both are powerful languages that allow you to create high-performance natively compiled programs. However, they are not languages that lend themselves to runtime flexibility. Once a C/C++ application is compiled, its code is pretty much static. At times, that can be a real hindr

    a_bicky
    a_bicky 2011/09/09
    CからPythonの関数に引数を渡して呼び出したり
  • http://www.curiocube.com/mikata/hello/index.php

    a_bicky
    a_bicky 2011/06/17
    なんかおもしろそう
  • 先輩教えて!プログラミングのabc---目次

    「先輩,前から疑問に思ってたんですが,これ何のエラーですか」 「ああ,これはリンクのときのエラー・メッセージだよ」 「リンクって,何ですか」 「え?知らないの。最近のツールは,コンパイルだリンクだって言わないからなぁ。リンクってのは,コンパイルしてできたものを全部つなげることだよ。ビルドすると,コンパイルの後にリンクまでやってるんだ」 「???。全然わかんないです。大体,ビルドとコンパイルって,やってること同じに見えるんですけど。違うんですか?」 「よし,じゃぁちょっと,腰をいれて説明しようか」 先輩教えて!プログラミングのabc(第1回)---コンパイルとビルドって何が違うの(上) 先輩教えて!プログラミングのabc(第1回)---コンパイルとビルドって何が違うの(中) 先輩教えて!プログラミングのabc(第1回)---コンパイルとビルドって何が違うの(下) 先輩教えて!プログラミング

    先輩教えて!プログラミングのabc---目次
  • C言語でヘッダファイルstdio.hのなかに、ライブラリがはいってるのですか?printf()などの関数はライブラリなんですか?ライブラ... - Yahoo!知恵袋

    ライブラリとは関数の集まりでmain関数がありません。 ライブラリは別途ファイルにあります。 「*.lib」となります。 試しに検索で*.libファイルを検索してみて下さい コンパイラをインストールされたフォルダ辺りにたくさん出てくると思います。 なおDLLファイルもライブラリになります。 *.lib:静的ライブラリ *.dll:動的ライブラリ となります。DLLは一番下で補足で軽く書きますが目的は同じになります。 さて関数を自分で作っても、ライブラリから呼び出そうとしても 関数のプロトタイプ宣言が必要になります。 自分で作る場合はわざわざ.hにしなくても.cのソースの頭の方に 記述してもいいですね・・・(そのソース専用関数になりますが) 人の作ったものまで宣言するのは大変ですよね? その為ヘッダーファイルが別途用意されています。 stdio.hと言うのはANSI規格で定められた関数やマク

    C言語でヘッダファイルstdio.hのなかに、ライブラリがはいってるのですか?printf()などの関数はライブラリなんですか?ライブラ... - Yahoo!知恵袋
    a_bicky
    a_bicky 2010/08/29
    ヘッダファイルとライブラリ
  • 1