C言語なら俺に聞け! Part 125
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/03/32(土) 23:06:47質問する前には最低限検索を。
GUIなどの標準Cではできない事の質問,ソース丸投げ、宿題、書籍 は専門の別スレッドがあるのでそこへさようなら。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
前スレ
C言語なら俺に聞け! Part 124
http://pc8.2ch.net/test/read.cgi/tech/1142302804/
0153デフォルトの名無しさん
2006/04/08(土) 00:47:06訂正して実行したが
nsd.c: In function ‘print_ver’:
nsd.c:247: error: stray ‘\’ in program
" 文字での終端を欠いています
nsd.c:248: error: syntax error before ‘version’
nsd.c:248: error: stray ‘\’ in program
" 文字での終端を欠いています
って出た。
その¥とvalがどういう文法なのか教えてくれ
初めて見て目が
これ以上は言うまい・・
0154デフォルトの名無しさん
2006/04/08(土) 01:05:06version.bind.\n", host, vul ? "supports" : "errors on");
0155デフォルトの名無しさん
2006/04/08(土) 01:06:21"aaaa
bbbb"
って書くと " が閉じられてないって怒られるから、
"aaaa\
bbbb"
と書く
0156デフォルトの名無しさん
2006/04/08(土) 01:06:520157デフォルトの名無しさん
2006/04/08(土) 01:15:12nsd.c:247:54: warning: backslash and newline separated by space
/tmp/cckq0U2u.o(.text+0x5c): In function `startpcap':
synscan.c: undefined reference to `pcap_lookupdev'
/tmp/cckq0U2u.o(.text+0x90):synscan.c: undefined reference to `pcap_open_live'
/tmp/cckq0U2u.o(.text+0xe0):synscan.c: undefined reference to `pcap_datalink'
/tmp/cckq0U2u.o(.text+0x1b0): In function `endpcap':
synscan.c: undefined reference to `pcap_close'
/tmp/cckq0U2u.o(.text+0x27a): In function `recvtcp':
synscan.c: undefined reference to `pcap_next'
collect2: ld はステータス 1 で終了しました
make: *** [all] エラー 1
分からずやるもんじゃないなやっぱ
勉強しなおしてくるお
0158デフォルトの名無しさん
2006/04/08(土) 01:37:08保存できないんだけど、どうしてだい?
0159デフォルトの名無しさん
2006/04/08(土) 01:38:390160デフォルトの名無しさん
2006/04/08(土) 01:39:510161デフォルトの名無しさん
2006/04/08(土) 01:40:59フォルダオプションで、拡張子の所変更
0162デフォルトの名無しさん
2006/04/08(土) 09:22:21明らかに糞仕様だよな。
0163デフォルトの名無しさん
2006/04/08(土) 10:20:050164デフォルトの名無しさん
2006/04/08(土) 10:23:410165デフォルトの名無しさん
2006/04/08(土) 10:26:540166デフォルトの名無しさん
2006/04/08(土) 12:01:110167デフォルトの名無しさん
2006/04/08(土) 12:40:080168デフォルトの名無しさん
2006/04/08(土) 12:42:33inlcudeする分には拡張子関係ねえよな? っていうことな・・・
0169デフォルトの名無しさん
2006/04/08(土) 13:11:090170デフォルトの名無しさん
2006/04/08(土) 13:12:28最近使ってないからよく憶えてないけど
bccは拡張子指定じゃなかった?
0171デフォルトの名無しさん
2006/04/08(土) 13:15:05限定かどうかは憶えてないけど
for(int i=0;i<10;i++)
とかは拡張子cppにしないとだめだったようか気もする
0172デフォルトの名無しさん
2006/04/08(土) 13:53:360173デフォルトの名無しさん
2006/04/08(土) 13:57:290174デフォルトの名無しさん
2006/04/08(土) 13:58:50つC++
0175デフォルトの名無しさん
2006/04/08(土) 14:01:40意図がわからん
オブジェクト指向をするのに言語は関係ない
0176173
2006/04/08(土) 14:02:210177デフォルトの名無しさん
2006/04/08(土) 14:03:32ただし、オブジェクト指向によるシステム分析結果を実装するには、プログラム構造とのセマンティクスギャップが少ないオブジェクト指向言語を用いるのが普通である。
C言語はオブジェクト指向言語ではない
0178デフォルトの名無しさん
2006/04/08(土) 14:28:52逆の場合どうだっけな
0179デフォルトの名無しさん
2006/04/08(土) 14:34:13コンパイルしてくれるよ。
0181デフォルトの名無しさん
2006/04/08(土) 14:50:12何が間違ってるか分りません。
コンパイラはBCCです。
例)3人を異なる5個の席に・・・5*4*3=60通り
#include <stdio.h>
int toori(int, int);
int main()
{
int n, m;
printf("何人---");
scanf("%d",&n);
printf("何席---");
scanf("%d",&m);
printf("%d人を異なる%d個の席につかせる仕方は%d通り。\n",
n, m, toori(n, m));
return 0;
}
int toori(int n, int m)
{
int i, j=1;
for (i=m; i>=n; i--)
j *= i;
return j;
}
0182デフォルトの名無しさん
2006/04/08(土) 15:07:550183181
2006/04/08(土) 15:11:290184デフォルトの名無しさん
2006/04/08(土) 15:35:37宿題スレ池
0185デフォルトの名無しさん
2006/04/08(土) 21:24:360186デフォルトの名無しさん
2006/04/08(土) 22:29:13#include <stdio.h>
MYSQL *myData;
const char *host = "localhost";
const char *user = "hogehoge";
const char *pass = "pass";
const char *db = "hogedb";
unsigned int port = 3306;
unsigned int flg = 0;
int main(int argc, char *argv[]){
if(myData = mysql_init((MYSQL*)0) && mysql_real_connect(myData, host, user, pass, db, port, NULL, flg)){
printf("成功");
}else{
printf("失敗");
}
}
警告は「assignment makes pointer from integer without a cast」
実行時のエラーは「セグメンテーションエラー」
トレースすると
・
・
・
getservbyname("mysql", "tcp") = 0x391200
getenv("MYSQL_TCP_PORT") = NULL
getenv("MYSQL_UNIX_PORT") = NULL
signal(13, 0x1) = NULL
malloc(952) = 0x8f8ead8
bzero(0x8f8ead8, 952) = <void>
__stpcpy(0x8f8ed2d, 0x806b886, 0, 0, 0x38dff4) = 0x8f8ed32
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++
0187デフォルトの名無しさん
2006/04/08(土) 22:29:58MYSQL *mysql_real_connect(mysql, host, user,passwd,db, port, unix_socket, client_flag)
MYSQL *mysql; MYSQLの構造体
const char *host; ホスト名
const char *user; ユーザ名
const char *passwd; パスワード
const char *db; データベース名
unsigned int port; ポート番号
const char *unix_socket; ソケット名(通常NULL)
unsigned int client_flag; クライアントフラグ(通常0)
-----
いったい何処が悪いのか
0188デフォルトの名無しさん
2006/04/08(土) 22:45:47いったい実体はどこを指していると思ってる?
0189デフォルトの名無しさん
2006/04/08(土) 23:26:17この部分が悪かったのかっ!?
>>188
ありがとう御座いました
0190デフォルトの名無しさん
2006/04/08(土) 23:36:040191デフォルトの名無しさん
2006/04/08(土) 23:38:31できる
ただし処理系もしくはデバイスに依存する
0192デフォルトの名無しさん
2006/04/08(土) 23:40:10system("clear");
system("cls");
0193デフォルトの名無しさん
2006/04/09(日) 12:01:520194デフォルトの名無しさん
2006/04/09(日) 12:08:400195デフォルトの名無しさん
2006/04/09(日) 12:14:34int array[10] ={0}
int main(){
int inte;
int a[10];
a = function(inte)
return 0;
}
int *function(int integ){
return array;
}
こういうのってだめですか?コンパイルすると
「incompatible types in assignment」
っていうエラーがでます。
0196195
2006/04/09(日) 12:17:28つまり、ポインタを戻り値にできないのですかってことです。
0197デフォルトの名無しさん
2006/04/09(日) 12:26:44ネットワークドライブごとすっとんだっていうバカ話を思い出したw
0198デフォルトの名無しさん
2006/04/09(日) 12:28:23>int a[10];
>a = function(inte)
int *a;
a = function(inte);
なら、通るね。
0199デフォルトの名無しさん
2006/04/09(日) 12:32:22式の中でaを用いるとその配列の先頭アドレスが返るというだけ。
型が違うのは当たり前。
0200195
2006/04/09(日) 12:53:16どうもです。
ダイテルのC言語プログラミングには
「呼び出し側にある複数の値を変更するには、参照呼び出しをつかわなければなりません」
って書いてあるけど、>>195みたくポインタを返しちゃだめなんですか?
0201デフォルトの名無しさん
2006/04/09(日) 12:56:26ポインタを返すのは注意深くやれば構わないが、>>195 みたいにはしない。
0202デフォルトの名無しさん
2006/04/09(日) 13:21:44ファイルスコープを利用したOOPを意識しているのなら、そういうのもあり。
意味が分からなければ、やめとけ。
0203デフォルトの名無しさん
2006/04/09(日) 13:39:03思ってるっぽいところが問題だと思う。
0204デフォルトの名無しさん
2006/04/09(日) 15:23:25ワラタ
0205デフォルトの名無しさん
2006/04/09(日) 16:15:51出来ないとでもおっしゃりたいのですか?
0206デフォルトの名無しさん
2006/04/09(日) 16:36:50int a[10];
int *pa;
pa = a;/*できる*/
pa++;/*できる*/
a = pa;/*できない*/
a++;/*できない*/
0207デフォルトの名無しさん
2006/04/09(日) 16:41:11*pa = a[0]; は?
0208デフォルトの名無しさん
2006/04/09(日) 16:49:36なるほど。aはポインタではないのね。
>>207
出来るに1000円
0209デフォルトの名無しさん
2006/04/09(日) 16:59:35コンパイルは通るけどはたしてやってそのままいいのかな?
0210208
2006/04/09(日) 17:17:08これが正解に2000円
0211デフォルトの名無しさん
2006/04/09(日) 17:20:35*pa は配列でもポインタでもないから
この話には何の関係もない
0212デフォルトの名無しさん
2006/04/09(日) 17:26:040213デフォルトの名無しさん
2006/04/09(日) 17:35:15リッチーが配列に代入できないことにした理由に領域が確保されている/いないは出てこない
0214デフォルトの名無しさん
2006/04/09(日) 17:49:38おいらもそれに20000万円
0215デフォルトの名無しさん
2006/04/09(日) 17:53:240217デフォルトの名無しさん
2006/04/09(日) 17:58:09寧ろ>>214に「一般表記で2億円でつか?」と訊いて欲しかった。
0218デフォルトの名無しさん
2006/04/09(日) 17:59:310219デフォルトの名無しさん
2006/04/09(日) 19:56:330220デフォルトの名無しさん
2006/04/09(日) 20:46:090221デフォルトの名無しさん
2006/04/09(日) 20:49:100222デフォルトの名無しさん
2006/04/09(日) 21:01:50民間資格だけどしかも過去問取り寄せないと手に入らないけど
0223デフォルトの名無しさん
2006/04/09(日) 21:09:160224デフォルトの名無しさん
2006/04/09(日) 21:10:470225デフォルトの名無しさん
2006/04/09(日) 21:38:370226デフォルトの名無しさん
2006/04/10(月) 00:22:53代入して、テキストファイルに出力すると
1.#INF00
という意味不明な値がたまにまじっているのですが、これは
いったいなんなのでしょうか?教えてください
0227デフォルトの名無しさん
2006/04/10(月) 00:41:17無限大。どっかで計算がおかしいんでない?
0228デフォルトの名無しさん
2006/04/10(月) 00:47:34お返事ありがとうございます
ちなみに計算は以下の通りです
#define pi 3.14159
#define ns 4
double ro;double b,c,d,e,f,h[];int i,g;g=0;
for(i=-maxd;i<0;i++)
{
f=i*0.01;
ro=1;
d=4/pi;
c=cos(2*pi*f/ns);
e=16*f*f/(ns*ns);
d=1/(1-e);
h[g]=d*b*c;
g++;
}
for(i=0;i<maxd;i++)
{
f=i*0.01;
ro=1;
b=4/pi;
c=cos(2*pi*f/ns);
e=16*f*f/(ns*ns);
d=1/(1-e);
h[g]=d*b*c;
g++;
}
この過程で無限大になる部分があるとは思えないのですが、
どうなんでしょうか?
0229デフォルトの名無しさん
2006/04/10(月) 01:02:11オーバーフローとかゼロ除算かもよ
0230デフォルトの名無しさん
2006/04/10(月) 01:05:340231デフォルトの名無しさん
2006/04/10(月) 01:11:000232デフォルトの名無しさん
2006/04/10(月) 01:11:45あ!!!!!!確かに!!!forループさせるとfが1に
なる部分がでてきます!!!
ありがとうございました!!!助かりました
0233デフォルトの名無しさん
2006/04/10(月) 01:55:310234デフォルトの名無しさん
2006/04/10(月) 01:58:460235デフォルトの名無しさん
2006/04/10(月) 02:06:230236デフォルトの名無しさん
2006/04/10(月) 02:12:190237デフォルトの名無しさん
2006/04/10(月) 02:14:10つBREW API
0238234
2006/04/10(月) 02:25:23レスありがとうございます。
しかし当方ドコモでしたorz
0239デフォルトの名無しさん
2006/04/10(月) 03:00:58Windows上で開発してテストしてコンパイルしたプログラムを携帯にロードする
0240234
2006/04/10(月) 04:36:48ありがとうございます。
クロスコンパイラですか。検索してみます。
0241234
2006/04/10(月) 04:47:35FOMAでは無理かorz
0242デフォルトの名無しさん
2006/04/10(月) 06:56:240243デフォルトの名無しさん
2006/04/10(月) 07:00:08どれにするか選択の余地はないと思うけど
Javaを使うものでも、Javaのどの機能が使えてどの機能が使えないとか
0244デフォルトの名無しさん
2006/04/10(月) 07:13:100245デフォルトの名無しさん
2006/04/10(月) 07:43:24とある旅行者がシリコンヴァレーのペットショップをのぞいていると、別の客が入ってきて店員にこういった。
「Cモンキーを一匹お願いします」
店員はうなずくと、棚のかごから猿を一匹取り出した。店員は、首輪とひもを猿に付けると、お客に渡した。
「50万円です」
客は金を支払うと、猿を連れて出ていった。
びっくりした旅行者は、店員にたずねた。
「そりゃまたえらく値の張る猿ですねぇ。普通猿は数万円ぐらいのものでしょう。なぜそんなに高いのですか」
店員は答えた。
「あの猿は、C言語でコードが書けるんです。非常に早く、タイトでバグなしのをね。値段に見合うと思いますよ」
旅行者は、かごに入った猿をしみじみと見始めると、店員にこう言った。
「この猿は、さらに高いじゃないか。100万円!こいつは何ができるんだい」
店員は答えた。
「その猿は、C++モンキーです。オブジェクト指向プログラミングができて、C++やJavaまで使えます。かなり使えるやつですよ」
旅行者はさらに周りを見渡し、かごを一人占めしている3つめの猿を見つけた。その猿には、なんと500万円の値札が付いていた。
彼は、あえぎながら店員に聞いた。
「この猿は、他の猿を全部合わせたよりも高いじゃないか。こいつは、一体全体、何ができるんだい」
「えーとですね」
店員は答えた。
0246デフォルトの名無しさん
2006/04/10(月) 07:47:410247デフォルトの名無しさん
2006/04/10(月) 10:15:33http://hp.vector.co.jp/authors/VA000092/jokes/
0248デフォルトの名無しさん
2006/04/10(月) 11:36:24ふと意味が分かった。爆笑w
0249デフォルトの名無しさん
2006/04/10(月) 12:05:340250デフォルトの名無しさん
2006/04/10(月) 14:25:21ここで問題が発生してます。
Linuxだと、FTPサーバがファイルを書き出している途中でも、
こちらがそのファイルを開けます。
(Windowsみたいに排他がかからない)
Openしてもファイルサイズが0だったり、完全ではないファイルだったりして
困っています。
そこで、FTPサーバのログファイルより、書き出されたファイルの情報を
取得してFTPサーバにあげられてきたファイルの読み込みを行おうと考えました。
(利点として、FTPにはかなりフォルダがありそれを全て短時間間隔で列挙している
ので、その分ファイルアクセスが減る)
ここで質問なのですが、こういったログ参照の場合Linuxではファイルに排他が
かからないため、ログファイルをオープンしっぱなしでログファイルのサイズの
変更があった場合にファイルを読み込むという感じでよろしいのでしょうか?
それとも、毎回オープンし、前回のファイルサイズ分ファイルポインタを
移動し読み込み、クローズすべきでしょうか?
また、他に何か良い手段はないものでしょうか?
0251デフォルトの名無しさん
2006/04/10(月) 14:42:45そんなややこしいことしないで送る側で別名(たとえば先頭に '_' を付けた
ファイル名)で送ったあとで本来のファイル名に rename するようにするか、
または 0 バイトの時と stat() して st_mtime が近い時間(たとえば1分以内)
なら読まないで無視するようにすればいいのでは? (fuser コマンドを使って
何かのプロセスがファイルを開いたままにしているかどうかを調べるという
方法もある)
0252デフォルトの名無しさん
2006/04/10(月) 15:07:55ftpにはget/put以外にもrenameやdeleteがあるんだからそれを使えばいいじゃん。
って、既に>251も書いているけど。
つーか、FTPサーバのログファイルはFTPしないと読めないと思うのだが。
#それともFTPサーバ側のプログラムの話なのか?
クライアントで、サーバから安全にファイルを取得するならこんなマクロでも組めばいい。
get targetFile tmp.targetFile
#delete receivedFile
rename tmp.targetFile receivedFile
■ このスレッドは過去ログ倉庫に格納されています