今、可変長引数をBUFFERにいれて
送る(SSLを使いますが・・・)ことをしていますが、
どうしてもその部分らしいところでwarningがでます。

どうもいまいちva系の取り扱いがわからないので、
アドバイスいただけるとうれしいです。

****ソース(va系が含まれるところのみ)****

WriteToClient (fmt, va_alist)
char *fmt;
va_dcl
{
va_list ap;
char * ssl_buf[1024];

va_start (ap);
vfprintf (stdout, fmt, ap);
va_end (ap);
//SSL
SSL_write(ssl, ssl_buf, sizeof(ssl_buf) );
}

*****コンパイル後のwarningメッセージ****

/usr/local/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/include/stdarg.h:96: warning: `
va_start' redefined
/usr/local/lib/gcc-lib/i386-pc-solaris2.8/2.95.3/include/varargs.h:111: warning:
this is the location of the previous definition
SSLpasschanger.c:216: macro `va_start' used with just one arg

わかる方いらっしゃいましたら、よろしくおねがいいたします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

 ん~つまり WriteToClient 関数を printf のように扱いたいってことですか?


 それでしたら、こんな感じだと思います。

void WriteToClient(char* fmt, ...)
{
 char ssl_buf[1024];
 va_list ap;

 va_start(ap, fmt);
 vsprintf(ssl_buf, fmt, ap);
 SSL_write(ssl, ssl_buf, sizeof(ssl_buf));
}

 この書き方で良かったのかどうか忘れてしまいましたが、とりあえず ap には fmt の次の引数のアドレスが入るはずです。
 ただ、va_ マクロの実装は処理系によってかなり違うと思いますから、やはり自信は無しです。

 呼び出し方は printf と同じです。フォーマットも指定してください。

WriteToClient("%s", "500 Username required.");

// "全角空白" でインデントしてますのでご注意を…もうご存知でしたね。
// No.1 で関数内に書いた ... は "省略" の意味です。なので 214 ... は必要ないです。引数リストの ... は必要です。
// それから gcc には va_alist や va_dcl というマクロもあったのですね。不勉強でした。No.1 の後半部分は忘れてください。
    • good
    • 0
この回答へのお礼

御礼が遅れてしまってすいません。
おかげさまでなんとか無事できました。

ありがとうございました!!!
とても感謝しております!

お礼日時:2002/01/27 02:23

 すみません。

書き忘れました。

 warning メッセージについてですが、stdarg.h と varargs.h で定義が重複しているのではないでしょうか。普通はヘッダファイルの中で二重定義を避けるための記述がされているはずですが、とりあえずインクルードファイルは stdarg.h の方だけで試されてみると良いと思います。
    • good
    • 0
この回答へのお礼

丁寧な説明、ありがとうございます!
すごく感動してます。
warningはきれいに消えました!(T▽T)うれし~♪

お手数ながら、その後のエラーのことも教えていただけないでしょうか?

さっそく一番下に書いていただいたもの(↓)でやってみたのですが、
208 void WriteToClient(char* fmt, va_list va_dcl)
209 {
210 char ssl_buf[1024];
211
212 vsprintf(ssl_buf, fmt, va_dcl);
213 SSL_write(ssl, ssl_buf, sizeof(ssl_buf));
214 ...
215 }

関数を呼び出すとき、引数が少ないというメッセージが帰ってきました。

342:too few arguments to function `WriteToClient'

呼び出すときは、
342 WriteToClient ("500 Username required.");
のように呼び出しているのですが・・・
printfと同じように記述すればよい、と思っていたのですが・・・ちがいますかね?
どうしたらよいでしょうか?
まだプログラミング初心者なもので・・・すいません(^-^;
お願いします。

お礼日時:2002/01/19 15:17

WriteToClient そのものが、可変引数関数になるのなら、


route156 さんの書かれた、function のように、

void WriteToClient(char *fmt, ...)

とします。まぎらわしいのですが、2つ目の引数はドットを3つ連続で書いてください。
    • good
    • 0

 うろ覚えで自信は無いのですが、va_start, va_arg, va_end は可変長引数を一つずつ取り出す場合に使ったと思います。



void function(char* fmt, ...)
{
 va_list ap;
 int param1;
 char* param2;

 va_start(ap, fmt);
 param1 = va_arg(ap, int);
 param2 = va_arg(ap, char*);
 ...
 va_end(ap);
}

 ただ、ご質問では vfprintf を使われているようですので、これは引数として va_list をそのまま受け取りますから、va_start 等は必要ないと思います。

void WriteToClient(char* fmt, va_list va_dcl)
{
 ...
 vfprintf(stdout, fmt, va_dcl);
 ...
}

 老婆心ながら WriteToClient の引数を ssl_buf にセットするのでしたら、次のようになるのでは? 他の部分がわからないので推測ですが。

void WriteToClient(char* fmt, va_list va_dcl)
{
 char ssl_buf[1024];

 vsprintf(ssl_buf, fmt, va_dcl);
 SSL_write(ssl, ssl_buf, sizeof(ssl_buf));
 ...
}

 それから、スタック上のバッファを使う時は、オーバーフローに留意された方が良いと思います。
 以上、確認はしていないので間違いがあるかもしれません。その点はお許しを。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q水星の逆行について。

占星術では水星が逆行している期間は「コミュニケーションの乱れや遅れが出やすい」とあります。現在まさにその期間中で、10日には順行に戻るとのこと。

ネットで色々調べてみたのですが、順行に戻れば「滞っていた物事が再びスムーズに動き出す」とのことで「あ~水星が逆行中だからしょうがないか」くらいの気持ちでそんなに心配しなくていい、というニュアンスで書かれていることがほとんどでした。

そこで疑問に思ったのですが。
例えば「物事が再び動き出す」ということは逆行中に思いがけず悪い方向へ進んでしまった物事がコロッといい方向へ向かう、という意味あいなのでしょうか。
それとも悪い方向へ進んでしまった事とは別に新たな道が開けて、「逆にあっちがうまくいかなくってよかったのかも・・・」というような感じなのでしょうか。

どちらにも取れるっちゃ取れますし、なんだか国語力の問題な気もするのですが(汗)。

実は現在、これはイケる!と思って頑張っていたことが急にうまくいかなくなり、停滞どころか後退してしまっているもので気になってしまいました。

水星の逆行について詳しいかた、また逆行中に体験したエピソードなどを教えていただけたらと思いました。

※「所詮占い、逆行うんぬんと関係ねーよ」という回答はご遠慮くださいね・・・(ただでさえ泣きそうなんで)

占星術では水星が逆行している期間は「コミュニケーションの乱れや遅れが出やすい」とあります。現在まさにその期間中で、10日には順行に戻るとのこと。

ネットで色々調べてみたのですが、順行に戻れば「滞っていた物事が再びスムーズに動き出す」とのことで「あ~水星が逆行中だからしょうがないか」くらいの気持ちでそんなに心配しなくていい、というニュアンスで書かれていることがほとんどでした。

そこで疑問に思ったのですが。
例えば「物事が再び動き出す」ということは逆行中に思いがけず悪い方...続きを読む

Aベストアンサー

水星逆行は、水星がつかさどる事項が進みがたくなったり、トラブルが発生するといわれています。
水星がつかさどる事項は、コミニュケーション、著述、書類作成、調査、商売、営業、広報、事務、学習、手先を使うこと、コンピュータ、文章、手紙、郵便、メール、携帯電話、なにかを運ぶ(運輸)、兄弟姉妹やいとこ、隣人などです。
まず、そのうまくいかなくなった事が水星に絡むものでしょうか?そうでなければ水星逆行は関係なく別の要因でしょう。
さらに、そのうまくいかなかった事が水星に絡むものであったとしても、ベクトルが内向きだったり、すでに行ったことをもう一度行うのであればトラブルは生じません。内向きとは、要は外部に出さずに自分の中だけで完結すること。例えば書類を作成して提出した場合は思ったような成果を得ることができないでしょうが、単に自分のデスクに置いておくだけならば問題は生じません。また2度目とか返信するとかそういう修飾のつく行いも問題は生じません。

上記2点に当てはまらないのであれば、水星逆行が原因なのかもしれません。が、生死にまつわるほどのトラブルは他の悪条件がいくつも重ならなければ生じません。

また逆行が終了した後、状況がよくなるかという点についてはケースバイケースとしかいえません。が、誰かと連絡がつかないことで物事がうまくいかなかった場合、作成した書類にミスがあって申請が通らなかった場合等、水星逆行で生じたイベントが原因となって物事の進行が滞っている場合は、状況が改善します。

水星逆行は、水星がつかさどる事項が進みがたくなったり、トラブルが発生するといわれています。
水星がつかさどる事項は、コミニュケーション、著述、書類作成、調査、商売、営業、広報、事務、学習、手先を使うこと、コンピュータ、文章、手紙、郵便、メール、携帯電話、なにかを運ぶ(運輸)、兄弟姉妹やいとこ、隣人などです。
まず、そのうまくいかなくなった事が水星に絡むものでしょうか?そうでなければ水星逆行は関係なく別の要因でしょう。
さらに、そのうまくいかなかった事が水星に絡むものであっ...続きを読む

QSSL_connect(ssl)

お世話になっています。
VC++2005、MFC、Win7、openssl で作業しています。

Gメールから、POP3S 接続でメールを受け取りたいと考えています。
メールヘッダーの受信後に、本文を取り出す前に接続が切れます。

最初に、接続の部分ですが、問題点がありましたら、アドバイスをください。

void CSQMailBoxTreeView::GmailMailDL(){
int nReturnCode;
WSADATA wsaData;
CFileException fileExpection;
#define MAJOR_VERSION_REQUIRED 1
#define MINOR_VERSION_REQUIRED 1

struct sockaddr_in server;


std::string req; // リクエスト
std::string res; // レスポンス
std::string host_url = "pop.googlemail.com";


strcpy_s(gszGmailServerName,(LPCTSTR)oc_Gmailpop3servername);
if(strlen(gszGmailServerName)==0){
MessageBox("設定 - Gmail POP3サーバー から、\n受信メール(POP3)サーバを\n入力して下さい。","POP Server", MB_OK);
}
strcpy_s(gszGmailUserId, (LPCTSTR)oc_Gmailpop3userid);
if(strlen(gszGmailUserId)==0){
MessageBox("設定 - Gmail POP3サーバー から、\nメールサーバのユーザ名を\n入力してください。","POP User ID", MB_OK);
}
strcpy_s(gszGmailPassword, (LPCTSTR)oc_Gmailpop3password);
if(strlen(gszGmailPassword)==0){
MessageBox("設定 - Gmail POP3サーバー から、\nパスワードを入力してください。","警告 PassWord", MB_OK);
}
strcpy_s(gszGmailPOP3Port, (LPCTSTR)oc_Gmailpop3port);
if(strlen(gszGmailPassword)==0){
MessageBox("設定 - Gmail POP3サーバー から、\nポート番号を入力してください。","POP3 PortNumber", MB_OK);
}

// Prepare version for WSAStartup()
WORD wVersionRequired = MAKEWORD(MAJOR_VERSION_REQUIRED, MINOR_VERSION_REQUIRED);
// Initialize the WinSock DLL
nReturnCode = WSAStartup(wVersionRequired, &wsaData);
if (nReturnCode != 0 ){
MessageBox("Error on WSAStartup()","CheckGMail", MB_OK);
return ;
}
// Confirm that the version requested is available.
if (wsaData.wVersion != wVersionRequired){
// Version needed is not available.
MessageBox("Wrong WinSock Version","CheckGMail", MB_OK);
WSACleanup();
return ;
}

sock = socket(AF_INET, SOCK_STREAM, 0);

server.sin_family = AF_INET;
server.sin_port = htons(995);

server.sin_addr.S_un.S_addr = inet_addr(host_url.c_str());
if (server.sin_addr.S_un.S_addr == 0xffffffff) {
struct hostent *host;
unsigned int **addrptr;

host = gethostbyname(host_url.c_str());
if (host == NULL) {
return ;
}

addrptr = (unsigned int **)host->h_addr_list;
while (*addrptr != NULL) {
server.sin_addr.S_un.S_addr = *(*addrptr);
if (connect(sock, (struct sockaddr *)&server, sizeof(server)) == 0) {
break;
}
}
if (*addrptr == NULL) {
sprintf_s(outbuf3, "Fatal error: unable to connect to the server.\n");
MessageBox(outbuf3,"Error", MB_OK);
WSACleanup();
return;// -1;
}
}
else {
if (connect(sock, (struct sockaddr *)&server, sizeof(server)) != 0){
return ;
}
}

SSL_load_error_strings();
SSL_library_init();
ctx = SSL_CTX_new(TLSv1_method());
if (ctx == NULL) {
return;// 1;
}

ssl = SSL_new(ctx);
if (ssl == NULL) {
return;// 1;
}

if (SSL_set_fd(ssl, sock) == 0) {
return;// 1;
}

RAND_poll();

while (RAND_status() == 0) {
unsigned short rand_ret = rand() % 65536;
RAND_seed(&rand_ret, sizeof(rand_ret));
}

int ev = SSL_connect(ssl);
if ( ev != 1) {
int ret = SSL_get_error(ssl, ev);
if(ret <= 0){
ERR_print_errors_fp(stderr);
return;// 1;
}
}

if (WSAAsyncSelect(sock, *this, SM_GASYNC3,
FD_CONNECT|FD_READ|FD_WRITE|FD_CLOSE) == SOCKET_ERROR){
MessageBox("WSAAsyncSelect() failed","Error", MB_OK);
closesocket(sock);
sock = INVALID_SOCKET;
return;
}

gnAppState = STATE_CONNECTING;
}

お世話になっています。
VC++2005、MFC、Win7、openssl で作業しています。

Gメールから、POP3S 接続でメールを受け取りたいと考えています。
メールヘッダーの受信後に、本文を取り出す前に接続が切れます。

最初に、接続の部分ですが、問題点がありましたら、アドバイスをください。

void CSQMailBoxTreeView::GmailMailDL(){
int nReturnCode;
WSADATA wsaData;
CFileException fileExpection;
#define MAJOR_VERSION_REQUIRED 1
#define MINOR_VERSION_REQUIRED 1

struct sockaddr_in server;


...続きを読む

Aベストアンサー

RETRコマンドで読み取り完了したら、そのメールを削除して、QUITコマンドで切断していますから1通しか読み込めないのは想定内の動作のハズですけど、そこらヘンはどうなんですかね?

CSQMailBoxTreeView::GmailProcessData()の呼び出し方次第ではココも正常動作が期待できませんが…。

前回の回答でも指摘しましたが普通のPOP3で正しく動作するもの作ってからの方がいいと思われますが…。
その際、LAN内の別マシンにPOP3サーバを構築すればWireSharkなどでパケットの内容は確認できますし。
# GmailのPOP3って…bad commandで切断されるのね……

あと…MessageBox()でもろもろの通知を出すと「そこで処理が止まる」ので通信扱う場合だと問題が発生することもありますのでご注意を。
# 私ならTRACE()やその類使いますね。(Win32SDKなんでOutputDebugString()ですが…)

Q10代で逆行性射精障害

10代の逆行性射精障害を持っている者(おそらく)です。
泌尿器科にいかなければならないのはわかっているのですが、

親にこのことを話しづらい(親に話さないと保険証が...)
受験生なのであ まり時間がない

などの理由からなかなか泌尿器科にいけません。逆行性射精は、不妊になる以外は害はないと聞いたのですが、このまま放置して、受験終わってから泌尿器科にいくというのでも大丈夫ですか?
逆行性射精は悪化し、その他の悪影響もあるんでしょうか?

Aベストアンサー

前の質問で回答したものです。

質問者さんが仮に逆行性射精障害であるとしても、その原因が何であるのかわかりません。寸止めかもしれませんし、知らないうちに糖尿病になっていて、それで逆行性射精障害になったのかもしれません。はたまたそれ以外の原因かもしれません。逆行性射精障害そのものは不妊になるだけですし、対処法もありますが、その原因がわからないだけに怖いのです。もし糖尿病だとすると、来年の春まで放置するのは怖いと思います。

要は今の症状だけでなく、その原因を医師に確かめてもらいなさいということなのです。親御さんに話すのも恥ずかしいことは充分わかりますが、まだわかっていない原因で取り返しのつかないことになったら大変ですよね。原因がわからない以上、しばらく放っておいて大丈夫ですとは言えないことは判りますよね。

今は恥ずかしいと思うでしょうが、親御さんにとっては息子の健康の方がずっと大切です。自分の息子がオナニーをやっていても当たり前だと思っています。もし手遅れになってから親御さんが知ったなら、本当に悲しみますよ。

自分の胸に聞いてください。本当に時間が無いのですか?親御さんに話しづらいだけじゃないですか?そんなことで一生後悔するようなことになったらバカバカしいですよね。あとは質問者さんの判断です。

前の質問で回答したものです。

質問者さんが仮に逆行性射精障害であるとしても、その原因が何であるのかわかりません。寸止めかもしれませんし、知らないうちに糖尿病になっていて、それで逆行性射精障害になったのかもしれません。はたまたそれ以外の原因かもしれません。逆行性射精障害そのものは不妊になるだけですし、対処法もありますが、その原因がわからないだけに怖いのです。もし糖尿病だとすると、来年の春まで放置するのは怖いと思います。

要は今の症状だけでなく、その原因を医師に確かめてもらい...続きを読む

Qremove_copy_ifがVisualStudio2005でwarning!?

はじめまして。

C/C++での質問です。

std::remove_copy_if(,,,)を使用したところ、以下の警告が出ました。
==
warning C4996: 'std::remove_copy_if': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'
==

警告を消すにはどうしたら良いでしょうか?
また、_Remove_copy_if(,,,,)というAPIを見つけましたが、ヘルプで出ません。同等の処理ができるのでしょうか??
引数がremove_copy_if()よりひとつ増えていますが、最後の引数の意味が良く分かりません。。。

詳しい方がいらっしゃいましたらご教授お願い致します。

環境はWindows2000でVisualStudio2005を使用しています。

はじめまして。

C/C++での質問です。

std::remove_copy_if(,,,)を使用したところ、以下の警告が出ました。
==
warning C4996: 'std::remove_copy_if': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'
==

警告を消すにはどうしたら良いでしょうか?
また、_Remove_copy_if(,,,,)という...続きを読む

Aベストアンサー

> 警告を消すにはどうしたら良いでしょうか?

ワーニング文章中にも書いてありますが、コンパイルオプションに「-D_SCL_SECURE_NO_WARNINGS」を追加すれば、このワーニングを消すことが出来ます。

Qみなさんが狙うヱヴァ:破の特典フィルムはどのシーンですか?

発売日が決定したヱヴァ:破のDVD&Blu-rayにも序と同じく
劇場上映生フィルムコマがついてくるそうですね。

みなさんが狙っている、欲しいと思っているフィルムのシーンはどこですか?

ちなみに私はペンペンがミサトの服に顔を突っ込んで寝ていたシーンを狙っていますw

回答よろしくお願いします。

Aベストアンサー

迷いますね^^どこも欲しい気もしますよね・・・(欲張りだ;)
序で入ってたフィルムは、ミサトがシンジを真剣に怒ってるシーンで、ロングショットのシーンで、もうちょっとキャラにカメラ寄ったシーンが欲しかったです;;(関係ない・・・!)ニコニコレイは、レアですよね・・・!

えっと、どこがいいかなあ・・・、
マリがパラソル(?)で屋上に登場!みたいなシーンがいいですかね・・・!
欲しいですね・・・!

Qzlib.libとlibpng.libについて

zlib.libとlibpng.libの作成ができなくて困っております。
libpng.libでpngAPIを使うには、zlib.libが必要だということで
zlib.libのビルドにも挑戦していますがうまくいきません。
これらのファイルを作るのが目的ではないので
どなたか配布できるならば配布していただけないでしょうか?。
もし配布できないなら作り方の詳細をご教授願います。

環境
Windows VISTA SP1
Visual Studio 2008

googleで検索して出てきたHPについては
ほとんど見ましたが
それをみてやっても上記環境ではうまくビルドができません。
*例えば以下 他にもたくさんみてその通りにやりましたが
エラーが大量にでてしまいうまくいきません。
http://dencha.ojaru.jp/programs_07/pg_graphic_10a1.html

大変 レベルの低い質問ですがよろしくおねがいいたします。
m(___)m

Aベストアンサー

有名なGNUプログラムなら、GnuWin32を探せばバイナリが見つかるでしょう。
http://gnuwin32.sourceforge.net/

http://gnuwin32.sourceforge.net/packages/zlib.htm
http://gnuwin32.sourceforge.net/packages/libpng.htm

Q平坦じゃないところで逆行してしまう(MT車)

こんにちは
いつもお世話になっています。
前回も、MT車について質問しましたが、また新たな疑問が出来たので質問させてください。

ただいま、MT車で教習所に通っています。
よく平坦に見えても、ちょっと傾斜がある道ありますよね??
教習所だとクランク内や踏切付近がそんな感じなのですが、その辺でかなりの確率で逆行してしまいます。検定試験でいうと、逆行(小~中)くらいです。教官がやるとサイドブレーキを使わず、逆行せずに走っているのですが。


坂道だとサイドブレーキがあるので、逆行することはないですが、このようなゆる~~~い坂、というか傾斜の場合、どんなフットペダル操作をすればいいでしょうか。

(1)同じような質問がOKWAVEにあったので見てみたら、「ブレーキを踏み続け、クラッチを切った状態から半クラッチまで戻す。そしてブレーキをはずせば、半クラッチの勢いで逆行せずに進む(アクセルは踏んでも踏まなくても大丈夫)」と言う答えがあったのですが、これだとエンストしてしまうんじゃないか??と疑問に思いました。どうでしょう??

(2)もしくは、いつも半クラッチに上げるまで、丁寧に時間を取ってやっているのですが、こういった傾斜にいる場合は、ブレーキを足から取った瞬間、一瞬で半クラッチまで上れば逆行せずに済みますか。それから急いでアクセル踏めば大丈夫ですかね??




また、上記の質問とは関係ないのですが、
発進の際のクラッチのあげ方について質問があります。
発進の際はクラッチを丁寧に上げろといわれているのですが、それは半クラッチからクラッチを完全に上げるときなのか、それともクラッチを切った状態から、半クラッチまで持っていくときなのか。


質問があった時はしつこいくらい教習官に聞いているのですが、時間内に聞き終われなく、いつもこちらでお世話になっております。
回答頂けると嬉しいです。

こんにちは
いつもお世話になっています。
前回も、MT車について質問しましたが、また新たな疑問が出来たので質問させてください。

ただいま、MT車で教習所に通っています。
よく平坦に見えても、ちょっと傾斜がある道ありますよね??
教習所だとクランク内や踏切付近がそんな感じなのですが、その辺でかなりの確率で逆行してしまいます。検定試験でいうと、逆行(小~中)くらいです。教官がやるとサイドブレーキを使わず、逆行せずに走っているのですが。


坂道だとサイドブレーキがあるので、逆行するこ...続きを読む

Aベストアンサー

サイドブレーキが必要であるような「きつい坂道」は除外して、「緩い傾斜程度」に限定して回答致します。

(1)に書かれている内容が基本的に正しいと思います。この部分を解説します。

クラッチペダルをいっぱい(床)まで踏み込んだ状態から、「ほんの少し」だけ戻しただけでは、クラッチミートは始まりません。この領域は戻しても戻さなくても完全にクラッチは切れています。この領域を「遊び」と呼びます。

遊びを過ぎて更にクラッチペダルを戻すとクラッチが繋がり始めます。このポイントを「ミートポイント」と呼びます。ミートポイントからクラッチペダルを上げきるまでが「半クラ」です。従って同じ半クラ状態でも、ミートポイント付近では「ほんの少しだけ繋がっている(=ほとんど滑っている)状態」ですし、ペダルを上げきる直前では「ほぼ繋がっている(=ほとんど滑っていない)状態」と違いがあります。当たり前ながら、クラッチペダルを完全に上げれば「完全に繋がった状態」となります。

例えば平坦な道で普通に発進する際、アクセルを踏みながらクラッチを平行して繋ぎながら発進すると思いますが、実はアクセルを全く踏まなくてもアイドリング回転だけでクルマを発進出来ます。ミートポイントから「半クラ」領域を過ぎて完全に繋ぎきる仕方をゆっくりとすれば、エンストすることなくクルマもソロッと動きます。

ここからが本題ですが、「緩い傾斜程度の坂道」の発進の際は、これを使います。すなわち、何故質問者様が発進する際にクルマが下がってしまっているかと言えば、クラッチを床まで踏んだ状態からブレーキを先に離してしまってからクラッチペダルを上げ始めているので、遊びの領域(=クラッチが全く繋がっていない領域)の間にクルマが下がってしまっている訳です。

平坦な時はそれで良いのですが(重力で下がることが無い為)、緩い傾斜の場合はブレーキを離す前に意識して先にクラッチをミートポイントまで戻しておくと、直後にブレーキを離しても後ろには下がらない訳です。逆にアイドリングの力で少し前に進む感じがすると思うので、直後にアクセルをゆっくりと踏みながら平行してクラッチも徐々に繋いでいけば上手く発進できると思います。

なお、ブレーキを踏んだ状態でミートポイントに差し掛かったぐらいなら「ほんの少しだけ繋がっている(=ほとんど滑っている)状態」なので少し回転数が下がる程度でエンストはしません。ここでエンストするようだとクラッチを戻しすぎです。

またブレーキを離した瞬間に重力でクルマが下がる力(=エンジンを止める方向の力)が掛かるので、ブレーキを離したら速やかにアクセルを踏み始めて下さい。ここでモタついているとエンストします(ここが上記の平坦路の発進とは異なる部分です)。「素早く」かつ「ほんの少し」踏んで下さい。踏みすぎると急発進します。ただし踏みすぎの場合は、別に踏みすぎてもクラッチを一気に繋げなければ発進はしませんので、最初のうちはエンスト回避の為に、多少踏みすぎぐらいとしておいて半クラで発進速度は調整するという手はあります。

なお、左足に関して遊びの領域を瞬時に飛ばすとか、ブレーキからアクセルへの右足の踏み変えを瞬時でやる等の操作が平坦時と異なりますが、慣れたら無意識で行うようになると思います。無意識の操作で出来るようになっても尚下がる場合は、それは「サイドブレーキが必要」ということになります。


(2)に関しては上記で分かって頂いたと思いますが、恐らく書かれている『いつも半クラッチに上げるまで、丁寧に時間を取ってやっているのですが』の部分は「遊び」の部分のことを言っておられると思うので、もしそうなら一気にミートポイントまで戻して下さい。


最後の質問も同様です。別に平坦路であっても何であっても、「遊びの部分」の戻し方は丁寧に戻そうが一気に戻そうが車の動きには無関係です(ただし足の疲れ方は違うと思います)。逆に半クラ領域(ミートポイントから終わりまで)に関しては「丁寧に戻す」のが基本的には良いです。

繰り返しますが、緩い傾斜の場合に意識するのは「遊びの部分を一気に飛ばして」「ブレーキを離したら瞬時に少しだけアクセルを踏む」ことであって、少しでも前に動き出してからの残りの半クラ操作は丁寧にやったほうが良いです。これを丁寧にゆっくりやったからって一度前に動き出したものが後ろに下がることはまずありません。


以上、参考になれば幸いです。

サイドブレーキが必要であるような「きつい坂道」は除外して、「緩い傾斜程度」に限定して回答致します。

(1)に書かれている内容が基本的に正しいと思います。この部分を解説します。

クラッチペダルをいっぱい(床)まで踏み込んだ状態から、「ほんの少し」だけ戻しただけでは、クラッチミートは始まりません。この領域は戻しても戻さなくても完全にクラッチは切れています。この領域を「遊び」と呼びます。

遊びを過ぎて更にクラッチペダルを戻すとクラッチが繋がり始めます。このポイントを「ミートポイント」...続きを読む

QBorlandbcc55とMYSQLのコンパイル時にlibmysql.libやmysqlclient.libのリンクについて

Windows上で、borlandbcc55、mysqlを利用しいてます。
Windows上のborlandbcc55、mysqlで
C/C++のソースでMYSQLの接続・切断・管理・MYSQLのレコードの値の取得・値の表示の仕方の基礎を教えてください。
これなら動きますよというソースを教えて頂けたら有難いです。

Borlandbcc55とmysqlの設定

my_global.hとmysql.hをincludeして、

コンパイル時にlibmysql.libやmysqlclient.libをリンクしてやればできそうなのですが

includeは
Cのソースで
#include "c:\mysql\include\mysql.h"
#include "c:\mysql\include\my_global.h"
と記述するだけでOKなのでしょうか?

MYSQLのLibmysql.libの設定の仕方及びコンパイル時にlibmysql.libやmysqlclient.libを
リンクする方法がわかりません。

bcc55コンパイラ設定のcfgファイルにlibMysql.libやmysqlclient.libを
追加設定必要ですか?
必要ならどう記述すればいいのでしょうか?
また違う仕方なのでしょうか?
全く理解できていません。
そのリファレンスをみてもわかりません。

1 coff2omf c:\mysql\lib\opt\libmysql.lib c:\borland\bcc55\lib\libmysql.lib
2 ilink32 obj-Dateien, exe-Dateiname, map-Datei, Libraries
3 -> ilink32 c0x32.obj testmysql.obj , testmysql.exe , , import32.lib cw32.lib libmysql.lib

これらの設定の仕方もわかりません。
設定に必要なのかどうかも理解できていません。
よろしくお願いします。

Windows上で、borlandbcc55、mysqlを利用しいてます。
Windows上のborlandbcc55、mysqlで
C/C++のソースでMYSQLの接続・切断・管理・MYSQLのレコードの値の取得・値の表示の仕方の基礎を教えてください。
これなら動きますよというソースを教えて頂けたら有難いです。

Borlandbcc55とmysqlの設定

my_global.hとmysql.hをincludeして、

コンパイル時にlibmysql.libやmysqlclient.libをリンクしてやればできそうなのですが

includeは
Cのソースで
#include "c:\mysql\include\mysql.h"
#inclu...続きを読む

Aベストアンサー

>includeは
>Cのソースで
>#include "c:\mysql\include\mysql.h"
>#include "c:\mysql\include\my_global.h"
>と記述するだけでOKなのでしょうか?

ダメでしたか?

cfgファイルにはよくつかうオプションを記述する。
普通は -I オプション、-L オプション。
どこにインクルードファイル、ライブラリファイルを置いてるかをコンパイラやリンカに教えるため。
よく使うのであれば追加すればいい。


>1 coff2omf c:\mysql\lib\opt\libmysql.lib c:\borland\bcc55\lib\libmysql.lib
c:\mysql\lib\opt\libmysql.lib はVisual C++用のライブラリファイルなので、coff2omfで変換しないと使えない。

>2 ilink32 obj-Dateien, exe-Dateiname, map-Datei, Libraries


>3 -> ilink32 c0x32.obj testmysql.obj , testmysql.exe , , import32.lib cw32.lib libmysql.lib
リンカを使ったことはありませんか?

>includeは
>Cのソースで
>#include "c:\mysql\include\mysql.h"
>#include "c:\mysql\include\my_global.h"
>と記述するだけでOKなのでしょうか?

ダメでしたか?

cfgファイルにはよくつかうオプションを記述する。
普通は -I オプション、-L オプション。
どこにインクルードファイル、ライブラリファイルを置いてるかをコンパイラやリンカに教えるため。
よく使うのであれば追加すればいい。


>1 coff2omf c:\mysql\lib\opt\libmysql.lib c:\borland\bcc55\lib\libmysql.lib
c:\mysql\...続きを読む

Q【占星術に詳しい方】火星が逆行している時の判断

こんばんは。

わたしはおひつじ座で守護星が火星ということなのですが、
今、火星が逆行しており、それは4月ごろまで続くと聞きました。
火星が逆行しているときは、行動力や目標達成への意欲などが薄れて
反省、見直しが必要だとききました。
この期間に下した決断というのは、あまり良いものではないのでしょうか?

というのも、今まで就職活動をしていて、1月末に企業と市役所から内定をもらいました。
どちらにしようか悩んだ末、早く決めないと市役所のほうは取り消しになってしまうため、
2月3日に市役所のほうに決めました。

自分の判断に納得している反面、市役所のほうは母親の薦めで軽い気持ちで受けたので、
いまいち自分の力で掴み取ったという感じがいまいちせず、卒業まで粘ったほうがいいのかという思いもあります。しかし、市役所は内定辞退できないので今さらいってもどうしようもないのですが、
これで本当によかったのだろうかという気持ちでモヤモヤしています。

これは火星が逆行していることが関係しているんでしょうか。
私は判断を早まってしまったのでしょうか。

アドバイスいただけたら幸いです。宜しくお願いします。

こんばんは。

わたしはおひつじ座で守護星が火星ということなのですが、
今、火星が逆行しており、それは4月ごろまで続くと聞きました。
火星が逆行しているときは、行動力や目標達成への意欲などが薄れて
反省、見直しが必要だとききました。
この期間に下した決断というのは、あまり良いものではないのでしょうか?

というのも、今まで就職活動をしていて、1月末に企業と市役所から内定をもらいました。
どちらにしようか悩んだ末、早く決めないと市役所のほうは取り消しになってしまうため、
2月3日に市...続きを読む

Aベストアンサー

現在運行中の火星は、おとめ座で逆行しています。
逆行は、「星の威力が半減する」というのが定理です。1・2月は
しし座で運行していました。

また、就職に関しては、火星は情熱を意味しますので、しし座で活発に活動していました。
トリン(120度)ですので、結果はうまくでます。


就職は、才能の宮アセンダントサイン(第一の宮)、惑星は水星で判断します。
貴方様の太陽を第一の宮に位置していると考え、ソーラーチャートで、判断しますと、

水星は、1・2月は、みずがめ座で運行中でした。セクステル(60度)。
(第11の宮)友人の宮に位置し、友人が職場で沢山出来、楽しく人間関係で発展していく・・・

という結果になります。

1・2月また、運行中の太陽・水星が、みずがめ座でコンジャクション(0度)でしたので、

存分に仕事能力が活かされます。

現在木星がおうし座で運行中ですので、金運の宮(第2宮)にありましたので、
生涯、お金に困らなくなるでしょう。


大開運です!

Qscanf("%s", buf);でスペースを含んだ文字

コンソールプログラムで
scanf("%s", buf);
を使用してユーザに入力された文字によって処理を行いたいのですが、このままではスペースを含む文字列がスペースの手前で切られてしまいます。
C:\Program Filesなどを入力可能にさせたい場合にはどのようにするのがベターですか?

Aベストアンサー

お任せください!
そもそもscanfを使うというのはお勧めでは
ありません。scanfは文字+改行文字が入力
されないと完了しないためです。
が、それは良しとしましょう。
scanfの書式ですが、

int n = scanf("%[^\r\n]",buf);

という便利な書式があります。
perlでもおなじみの書式ですね。
上記の山文字"^"より前が読み込ませたい文字の集まりで、ハイフン指定が出来ます。
"^"より後ろが読込みを停止させたい文字の集まりです。上記の指定は復帰改行以外の文字が現れるまで読み込みます、という書式です。
下記のような指定も出来ます。

int n = scanf("%[a-zA-Z0-9\\: \t^\r\n]",buf);

なお、戻り値は読み込んだ項目数ですので、
if(n >= 1)
{
}
で判断できますね。


人気Q&Aランキング