概要 anchor.png Edit

D言語では、C言語の関数がそのまま使えます。 core.stdc.* にC言語の関数のAPIが存在します。

しかし、C言語の場合その多くがポインタなど危険なインターフェースを含んでおり、D言語の対応する関数が欲しくなる場合があります。

このページでは、C言語に対応するPhobosの関数を対応表で紹介します。

Page Top

対応表 anchor.png Edit

Page Top

assert.h anchor.png Edit

C言語PhobosTango
assert組み込み機能の assert
Page Top

stdlib.h anchor.png Edit

C言語PhobosTango
abort-*1
absstd.math.abstango.math.Math.abs
atexit-*2
atofstd.conv.totango.util.Convert.to*3
atoistd.conv.totango.util.Convert.to*4
atolstd.conv.totango.util.Convert.to*5
bsearchstd.algorithm.findAmongSorted*6
calloccore.memory.GC.calloctango.core.Memory.GC.calloc
div-
exit-*1
freecore.memory.GC.freetango.core.Memory.GC.free
getenvstd.process.getenvtango.sys.Environment.Environment.get
labsstd.math.abstango.math.Math.abs
ldiv-
malloccore.memory.GC.malloctango.core.Memory.GC.malloc
qsortstd.algorithm.sort*7tango.core.Array.sort*7
randstd.random.uniformtango.math.random.Random.rand.uniform
realloccore.memory.GC.realloctango.core.Memory.GC.realloc
srandstd.random.Random.seedtango.math.random.Random.rand.seed
strtodstd.conv.totango.util.Convert.to*3
strtolstd.conv.totango.util.Convert.to*5
strtoulstd.conv.totango.util.Convert.to*5
systemstd.process.systemtango.sys.Process.Process
Page Top

stdio.h anchor.png Edit

C言語PhobosTango
FILE*std.stdio.FileTangoのファイルの取り扱いはC言語のものとは大きく異なります。
tango.io.stream.TextFileや、
tango.io.stream.DataFileを御覧下さい。
clearerrstd.stdio.File.clearerr
fclosestd.stdio.File.close
feofstd.stdio.File.eof
ferrorstd.stdio.File.error
fflushstd.stdio.File.flush
fgetcstd.stdio.File.rawRead
fgetpos-*8
fgetsstd.stdio.File.rawRead
fopenstd.stdio.File (コンストラクタ)
std.stdio.File.open
fprintfstd.stdio.File.writef
fputcstd.stdio.File.rawWrite
freadstd.stdio.File.rawRead
freopenstd.stdio.File.open
fscanfstd.stdio.File.readln
fseekstd.stdio.File.seek
fsetpos-*8
ftellstd.stdio.File.tell
fwritestd.stdio.File.rawWrite
getcstd.stdio.File.rawRead
getcharstd.stdio.stdin.rawReadtango.io.Console.Cin.stream.read
getsstd.stdio.readlntango.io.Console.Cin.copyln
perror-*8
printfstd.stdio.writeftango.io.Stdout.stdout.format
putcstd.stdio.File.write*9-
putcharstd.stdio.writetango.io.Stdout.stdout*10
putsstd.stdio.writetango.io.Stdout.stdout*10
removestd.file.removetango.io.Path.remove
renamestd.file.renametango.io.Path.rename
rewindstd.stdio.File.rewind-
scanf-*8*11
setbuf-*8
setvbufstd.stdio.File.setvbuf
sprintfstd.string.format*12tango.text.convert.Layout.Layout*13
sscanf-
tmpfilestd.stdio.File.tmpfiletango.io.TempFile.TempFile
tmpnam-
ungetcstd.stdio.InputByChar.unget*14-
vfprintf-
vprintf-
vsprintf-
Page Top

locale.h anchor.png Edit

C言語PhobosTango
localeconvそもそもがUTF-8で処理するため関係ない。
ただし、Tangoの場合時間などの変換設定を変えるための機能があります
setlocale
Page Top

投票とコメント anchor.png Edit

Choices Vote
大変参考になった3  
参考になった1  
あまり参考にならなかった0  
まったく参考にならなかった0  

No comment. コメント​/HowTo​/C言語の標準関数に対するD言語の関数はどれ?Edit

Name:

*1 throw, assert(0)等を用途に合わせて
*2 モジュールのstatic ~this() など
*3 またはtango.text.convert.Float.parse
*4 またはtango.text.convert.Integer.toInt
*5 またはtango.text.convert.Integer.toLong
*6 その他にも要素を見つけ出す関数は何個かある
*7 あるいは配列のプロパティのsortなど
*8 std.stdio.File.getFSを使う
*9 std.stdio.File.LockingTextWriter.putでも可
*10 .opCall
*11 std.stdio.readln+std.conv.toでも可
*12 std.string.sformatでも可
*13 Layoutをcharに限定したtango.text.convert.Format.Formatもある
*14 undocumented

Front page   Edit Freeze Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 4407, today: 1, yesterday: 3
Princeps date: 2010-02-15 (Mon) 00:37:34
Last-modified: 2010-02-15 (Mon) 00:37:34 (JST) (3946d) by ゲスト
メインメニュー

ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録

Menu