No.1
- 回答日時:
一時ファイルは、ルート ディレクトリに作成されます
http://msdn.microsoft.com/ja-jp/library/b3dz6009 …
他の人にも言えることですが、
質問する前に検索してみてはいかがですか?
上記はグーグルで最初に出てきたものです。
MSDNの記事なので、信憑性は高いです。
ただ、日本語はまれに誤訳があったり、
肝心な部分が省略されていたりするので、
英語版が一番信頼が置けるのですが.....
それでも、MSDN日本語版は日本語Windows上のC/C++開発をやるには
必見だと確信しています。
一般の掲示板より信頼がおけます。
MSDNは情報がありすぎたり、多少用語や概念に難があるので
(特に初心者には)嫌われるのもわかる気がしますが、
"テンポラリの場所"ぐらいはズバっと書いてあるはずです。
食わず嫌いを直すことを強くお勧めします。
MSDNで疑問に感じたことをこういう掲示板で質問したりするのは、
”ありだと思います"
No.2ベストアンサー
- 回答日時:
>一時ファイルは、ルート ディレクトリに作成されます
この文の先頭には「実行したプロセスに環境変数 TMP が与えられていない場合や、環境変数 TMP が指すディレクトリが無効な場合は」が抜けてます。
特に、WinXPなどの「NT系OS」は、ブートドライブのルートディレクトリにファイルを作り過ぎると「NTLDR is missing」が発生し、OSが起動しなくなります。
http://support.microsoft.com/kb/320397/ja
この問題は「NTLDRがルートディレクトリのファイルエントリの32番目よりもうしろに追い出される」と発生するので「たとえ一時的であっても、ルートディレクトリには、絶対に32個以上のファイルを作ってはいけない」です。
なので「一時フォルダをルートディレクトリに作っているとしたら、自殺行為に等しい」ので、そんな事は絶対にありません。
tmpname_s関数を使うと「tmpfile_s関数でファイルが作られる際の、一時ファイルの名前」を取得出来るので、tmpname_s関数を試してみると良いでしょう。
以下、蛇足ですが「NTLDR is missing問題」は、最新版のサービスパックをOSに適用しただけでは問題解決しません。
なぜなら「起動ドライブのブートレコードは、サービスパックを適用しても更新される事はなく、問題を含むバージョンのOSで書かれたブートレコードはずっと問題を含んだまま」です。
問題を解決するには「マイクロソフトから、ブートレコードを更新するツールを入手して、起動ドライブのブートレコードを書き換える必要」があります。
>ただ、日本語はまれに誤訳があったり、
>肝心な部分が省略されていたりするので、
機械翻訳なので誤訳は仕方が無いですが、英語の原文そのものが「肝心な部分が書いてない」ので、翻訳が悪い訳じゃありません。「元から抜けてる」んですから、どうしようもないです。
業界では「オフィシャルな筈のMSの情報が一番信用できない」などと言われてたりします。ANSIで規格化されている筈の標準Cライブラリも、MSのだけ「確かに規格の範囲内だけど、MSだけ独自路線を突っ走って」いて、かなり「困ったちゃん」です。
「MSの言う事だけは信用するな」が鉄則です。
この回答へのお礼
お礼日時:2009/05/28 19:14
回答ありがとうございます。
WinXPx64Proで、環境変数TMPをルート以外に設定していますが、
C:\にテンポラリファイルが作成されます。
処理が終わると無くなりますが、お書きになった内容ですと
このままこのアプリを動かすと、何かよくないような感じがしてきました。
貴重な情報ありがとうございました。
No.3
- 回答日時:
No.2さん
>この文の先頭には「実行したプロセスに
>環境変数 TMP が与えられていない場合や、
>環境変数 TMP が指すディレクトリが無効な場合は」が抜けてます。
tmpfile_s()とGetTempPath()の仕様を混同されているのではないでしょうか?
http://msdn.microsoft.com/ja-jp/library/cc429356 …
ここには
No.2さんのおっしゃる通り
TMP環境変数が最初に参照される旨記述されています。
もっとも
>「MSの言う事だけは信用するな」が鉄則です。
ですから、この情報も信用してはいけないのですね?
ちょっとお伺いしたいのですが
"「MSの言う事だけは信用するな」が鉄則です"
なら、”業界"の皆さんはどうやって
Windowsプログラミングをしているのですか?
私の周囲にはWindows関係のプログラマが何人もいます。
守備範囲もVBなどで作る一般的なアプリから、
専用のデバイス・ドライバまで幅広いです。
キャリアは当然人によりけりですが、
最古参の人は
Windows 1.xの頃からWinアプリを作っています。
そういう人々は疑問点があるとMSDNで検索したりしてます。
また、アスキー社辺りから出ているMicrosoftオフィシャルの本
を購入して、新技術などを学んでいます。
私も、諸先輩方に学び、ここまでやってきました。
それが、まったくのうそっぱちだったとは!!!!!!
しかも、それ(嘘っぱちだらけであること)が
”業界の常識"であったとは.....
まさに裸の王様ですね。
これから先もWindowsの仕事は続けたいのですが
"業界の常識"となっているサイトや本
(当然、MSが一切関与していないことが条件です。
出典や参考文献、リンク等にMSが出てきたら、
情報の信頼性が根本から揺らいでしまいますので)
を教えてください。
先輩方にも大至急連絡したいので
よろしくお願いします。
No.4
- 回答日時:
ちなみに.....
(どうせ嘘っぱちに決まっているのでどうでもいいのですが,
念のためといことで)
MSDNには確かに機械翻訳の部分も多いですが、
全部ではありません。
機械翻訳の場合はその旨表示されています。
私が"誤記"と言ったのは機械翻訳の誤りのことでは
ありません。
例えば、
http://social.msdn.microsoft.com/Forums/ja-JP/vd …
ことです。
このページには”誤訳"のあったページへのリンクがあります。
リンク先には"機械翻訳"の表示はありません。
(嘘つきのMS、表示をしないなんて朝飯前ですね)
読解力のない私には、”それなりに"きれいな日本語と感じます。
機械翻訳も嫌になるほど読みましたが、雲泥の差です。
(さすが、天下のMS、上質な機械翻訳と質の悪い機械翻訳を
使い分けてまでだましているわけですね。
ほんとにあくどいことこの上ないですね)
それから、私のいう"省略"とは
http://msdn.microsoft.com/en-us/library/aa452850 …
の訳
http://msdn.microsoft.com/ja-jp/library/cc428300 …
のようなものを指します。
英文のremarkにある
AlphaBlend does not support mirroring. If either the width or height of the source or destination is negative, the call to AlphaBlend will fail.
までは訳されています。
AlphaBlend 関数では、ミラー化はサポートされていません。送信元または送信先の幅や高さが負値の場合、この関数は失敗します。
という風に...
しかし、英文ではこの後に続きがあるのですが、
日本語では、記述がありません。
このどこが
>翻訳が悪い訳じゃありません。「元から抜けてる」んですから
というのか、おバカな私には全く理解できないのです。
大変恐縮なのですが、
どうか”暖かいお心で"
おバカの私にも理解できるよう、ご丁寧にご教授下さいませんか?
よろしくお願い申し上げます。
(あー。早く”業界の常識を知りたいです。
Windows 2000/XP用のドライバをリリースしたのですが、
こともあろうにDDKをDLし、作ってしまいました。
きっとこんなことするのはわたしだけなんだろうな。
早く、DDKを全く使用しない”業界の常識"にそったドライバを
リリースしなおさないと大変なことに....)
No.5
- 回答日時:
またまた、連続で申し訳ありません。
なにせ心配性なもので...
プログラマの宿命でしょうか?
ご理解ください。
”業界の皆さん"が利用しているツールについて質問ですが、
当然MSの情報に一切基づかないものであるわけですよね。
私はVC++(正確にはVS2008)とMS製品使っちゃています。
捨てなければなりません。
で、代替品を大至急入手する必要があるわけですが、
どういうものをみなさんはご利用なのでしょうか?
gc++とかも考えたのですがMSのwindows.hとかが必要になってしまいます。
SDKとかも信用できないので利用できませんよね。
どうやって解決なされているのでしょうか?
また、MSに全く頼ることなく、独自の開発環境(ライブラリ等も含む)
となると、乏しい私の知識では、”独自にリバース・エンジニアする"
位しか思いつかないのですが、どのようにして情報を入手されて
いるのでしょうか?
リバース・エンジニアリングというと恐らくMSが黙っていないと思います。
そういう製品を利用して開発するとなると、
私には不安があるのですが...
"業界の常識"で広く使われているのだから、
ライセンスとかは完全にクリアされていると理解しています。
どうやってクリアされているのでしょうか?
そのプロセスをご教授願えませんでしょうか?
私の作った製品で利用者様にご迷惑をかけたくないもので、
心配なのです。
そのプロセスが理解できれば、安心して
VSを葬り去ることができます。
どうか、よろしくお願い申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- その他(SNS・コミュニケーションサービス) ゲームでボイスチャットを使いたいんですが、親にどう説明したらいいですか 2 2022/08/03 14:07
- 専門店・ホームセンター 先日、IKEAで机を買って組み立てました。 完成後に、木ダボの部品が一つ余っていることに気づきました 4 2022/09/05 16:49
- X(旧Twitter) 友達が欲しいです。 4 2023/03/22 22:08
- Word(ワード) office365で作成したファイルをWEB版Officeで更新 2 2022/06/05 14:49
- 国産車 【日産自動車のVCターボエンジンは4WD動作を部品点数を減らした一体化したユニットにした 5 2023/05/26 23:00
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- 確定申告 e-taxで開業届を出す方法がわかりません 1 2022/06/01 19:00
- オンラインゲーム ValorantってオープンVCないんですか? プッシュ・トゥ・トークしかない感じ? 1 2023/03/17 03:01
- その他(病気・怪我・症状) 病院の診断書 7 2023/02/13 17:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フルパスから最後のディレクト...
-
GetPrivateProfileStringでini...
-
windows.hがincludeされない
-
どんなプログラムを書いても指...
-
フォルダの物が増えたら、自動...
-
ShellExecute、エクスプローラ...
-
マイクラでPythonのプログラミ...
-
「UNCパスはサポートされません...
-
ExcelVBAでカレントディレクト...
-
[VC]VCのデバッグ実行で落ちる...
-
テキストファイルからApp.Path...
-
圧縮(Zip)について
-
ファイルのパスを動的に取得
-
#include fileを絶対パスで指定...
-
FTPでリモートのファイル一覧取得
-
iphone5アルバム写真を番号順に...
-
ファイルやディレクトリの存在...
-
FTPでputすると空ファイルが出...
-
ファイルダイアログのカレント...
-
C言語初心者の質問失礼します。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どんなプログラムを書いても指...
-
フルパスから最後のディレクト...
-
FTPでputすると空ファイルが出...
-
windows.hがincludeされない
-
ExcelVBAでカレントディレクト...
-
「UNCパスはサポートされません...
-
マイクラでPythonのプログラミ...
-
C言語を用いたファイルの一括削...
-
fopenで別ディレクトリにファイ...
-
GetPrivateProfileStringでini...
-
ファイルやディレクトリの存在...
-
ネットワーク上のコンピュータ...
-
ExcelVBA サーバーの(共有フォ...
-
エクセルVBAで相対パスでファイ...
-
pythonでの日本語操作
-
VBAで自身のファイル名を取得す...
-
webアプリケーションでの画像フ...
-
絶対パスの絶対て英語で何でし...
-
FTPでリモートのファイル一覧取得
-
ファイルダイアログのカレント...
おすすめ情報