トップページphp
14コメント7KB

C++ ともに学ぼうではないか。

■ このスレッドは過去ログ倉庫に格納されています
0001まだ中学生2010/08/16(月) 12:09:44ID:GWRK3hBQ
自分の作ったプログラムをダウンロードリンクはって、
起動してもらったり(っていっても、信用できないからあんまり起動する人はいないとおもいますが)
ソースはったり、質問したり。
まぁ、だれかの質問と答えをみて、自分が学ぶこともあるだろうし、
だれかのソースをみて、疑問がうまれてくるかもしれないし。
とにかく、Cの若干初心者のかたから、若干中級者のかたまで、
自由にCについていろいろ書くスレです。
0002まだ中学生2010/08/16(月) 12:20:35ID:GWRK3hBQ
http://ipodkaramail.web.officelive.com/default.aspx
とりあえずおれの作ったプログラムがおいてあります。
0003まだ中学生2010/08/16(月) 19:41:56ID:GWRK3hBQ
system関数って便利だな〜
はまっちゃった。
0004まだ中学生2010/08/16(月) 19:50:07ID:???
いたずら的なプログラム


#include<stdlib.h>
int main(){
system("echo start a>C://Users//%username%//desktop//a.bat");
return 0;}
三行目のやつ、aのところをbにかえたりして、たくさんかいたら、デスクトップにたくさんバッチファイル増えるww
そのバッチ起動すると、うざいことになるから、気をつけてね。




0005まだ中学生2010/08/16(月) 19:54:56ID:???
>>4の、
main関数内の最後に、
system("C://Users//%username%//desktop//a.bat");
って加えたら、
それを起動することになるよ。
0006まだ中学生2010/08/16(月) 19:57:49ID:???
あ、>>4>>5 は、
windows7でしかうごかないよ。

使ってるパソコンのデスクトップのパスを入力してるだけだから、
自分のにあったやつにしたらOKかと。



0007nobodyさん2010/08/19(木) 03:35:35ID:???
どーでもいいけどWebProg板にふさわしくないだろ。
興味ないし見てもいないけど某.NETとか論外だからな?
officeliveってVCっぽい…、まーmonoとかあるけどさ。
どうせならApacheモジュールとか作れよ。
無理ならお約束のこんにちは世界でもやっとけ。
CGIってだけでも相当面倒なんだぞ?

あと無闇にsystemとか使うな。exec系も覚えとけな?
0008まだ中学生2010/08/20(金) 21:55:21ID:???
ちなみに、なんでsystem関数をむやみに使っちゃだめなの?
0009おじいちゃん2010/08/22(日) 08:35:29ID:???
基本なのじゃがsystem関数というのは、シェルを呼び出しておるのじゃ。
Windowsであればcmd.exe、Linuxであればshやbashなど、といった具合じゃな。

system関数はの、forkで生成しよった子プロセスがシェルを実行しよって、
そのシェルもforkしよる、それで生成した子プロセスがコマンドを実行しておる形なのじゃよ。
それにの、シェルが生成した子プロセスをwait、シェルが終了しシェルの終了状態が返るというわけじゃ。
そのような複雑(そこまで複雑でもないがの)なプロセスを踏んでいるわけじゃよ。

対象の実行形式ファイルを直接実行しているというわけではないのじゃな。
そうなると色々と問題が起きてくることもあるのじゃよ。

system関数は実行形式ファイルではなくての、シェルの返り値を返しているのじゃから、
実行したコマンドの返り値を厳密に得たい時にハマることもあるのじゃよ。
system関数を全く使ってはならぬと言ってはおらんし当然じゃがケースバイケースじゃの。
無闇にsystem関数を使うのではなくてじゃな、他の関数の利点も考慮に入れて最適なものを選ぶのじゃぞ。
しかしforkする、exec連盟でコマンドを実行、waitする、というのが日本人の美徳じゃなあ。
スッキリするじゃろ?そうじゃ、system関数はパイプを使うこともできんのじゃ。
他にも問題はあるのじゃが、おぬしには少し早い話だったかったかのう。

まずポインタは理解しているのかのう?まずは、そこからじゃよ。
0010まだ中学生2010/08/23(月) 19:43:18ID:dXnJFaXV
んー、実に難しいですねw←わかってないやつw
とにかく、ケースバイケースで、そのときにてきした関数をつかったほうがいいことですね?
まだ初心者の僕にとって、コマンドプロンプトのようにできるsystem関数を多用してましたけど、
こんどからは、いろいろな関数をみてみます。
おじちゃんさんのいってることがわかるようになったころは、
きっともう上級者レベル(?)になってる気がしますw
がんばります!
ありがとうございました!おじいちゃんさん!
>>7
の人みたいにいやみったらしくいう人はなんでこのようにやさしくおしえてくれないのか。
0011nobodyさん2010/08/23(月) 20:29:31ID:???
普通プログラミングを学ぶときは
言語機能から学ぶのが普通ってことだろう
system関数はシェル(winではプロンプト)の範疇であって、言語の範疇ではないな
0012まだ中学生2010/08/24(火) 23:23:11ID:h13PZB6/
wwwwwwwww
いやー、さっぱりですね。
やっぱりまだまだ勉強がたりませんね。
修行しますwww
nobodyさん、ありがとうございました。

あと、
Windowsアプリケーションで、
FILE *fp
fp=fopen("a.txt","a");
for(;;){
fprintf(fp,"bbbbbb");
}
fclose(fp);

みたいなことやったら、
プログラムが終わりません。

コンソールアプリケーションじゃないんで、
DOS窓の×ボタンを押すわけにもいかず、
シャットダウンいがい方法がなくなってしまいましたwwww
なんかシャットダウン以外で他に消す方法ないんでしょうか?w
0013nobodyさん2010/08/25(水) 01:42:55ID:???
そもそも無限ループはバグだから作らない
もしなってもタスクマネージャででも落とせばいいだろう
wのつけすぎは厨房臭くて不快に思われがちだから控えたほうがいい
0014まだ中学生2010/08/25(水) 08:50:23ID:C/DkxlEU
あーすみません。
wはひかえます。
windowsアプリで、
for(;;)で無限ループをつくると、
強制終了でしかおわらなくなるんですよ。
しかもwindowsアプリケーションで、
バックグラウンド(?)だったとおもいますが、
そういうものになるんで、タスクマネージャとかでは表示されませんでした。
■ このスレッドは過去ログ倉庫に格納されています