salsberry の回答履歴
- fstatでファイルがリンクかどうか分かるか
c言語でファイル操作の勉強をしています. 引数にファイル名を与えてプログラムを実行するとして, そこからfstatでそのファイルがリンクかどうかを, 判別する方法はありますか. また,statなら判別できますか? パソコンはunixです. よろしくお願いします.
- fstatでファイルがリンクかどうか分かるか
c言語でファイル操作の勉強をしています. 引数にファイル名を与えてプログラムを実行するとして, そこからfstatでそのファイルがリンクかどうかを, 判別する方法はありますか. また,statなら判別できますか? パソコンはunixです. よろしくお願いします.
- Javaで端末を操作
サーバ側がらクライアント側へファイルを転送し、 UserModeLinuxを起動するというプログラムを作成しています。 ファイルを転送するまでは完了したのですが UserModeLinxuを起動するためには クライアント側の端末で 「linux.uml ubd0=uml-root-hardy umid=uml1」 と入力する必要があります。 これをどのように行えばよいかまったくわかりません。 これを使ったらどうか。こんなプログラムがあるなど 何でもいいので実現するためにアドバイスいただけないでしょうか。 よろしくお願いします。
- antが上手く出来ない
卒論作成中の学生です。 buildするのにantを使おうとしているのですが >ant run Buildfile: build.xml init: compile: run: [exec] java.lang.NoClassDefFoundError: Files\Java\jre6\lib\ext\QTJava/zip [exec] Exception in thread "main" [exec] Result: 1 BUILD SUCCESSFUL Total time: 1 second という結果で一応ビルドできてる?みたいなのですがバッチファイルを起動しようとすると 同じエラーが出てしまいます。 関係ありそうな以下のパスを調べたりいじったりしてもダメでした。 ANT_HOME=C:\apache-ant-1.7.1 CLASSPATH=.;\C:\Program Files\Java\jre6\lib\ext\QTJava.zip JAVA_HOME=c:\program files\java\jdk1.5.0_08 Path=c:\program files\java\jdk1.5.0_08;C:\Program Files\QuickTime\QTSystem\;C:\apache-ant-1.7.1\bin(一部抜粋) 割と頻出の問題のようなのですがはっきりとした解決方法が見つけられずにいます。 この問題に行き詰って作業が完全に止まってしまっているのでよろしくお願いします。
- このプログラムのelse以降についての書き方
以下のプログラムで、else以降についての書き方がわからず困っています。 このプログラムは、ランダムに与えられた点配置でx座標の小さい順からまず、三つ取り出し、三角形を作っていくのですが、最後のif文の点から点、辺から辺、辺から三角形など参照しているところで行き詰まっています。個々の配列の番号と=1とか2などの意味だけでも、分かる方いたら教えてください。よろしくお願いします。 --------------------------------------------------- #include <stdio.h> #include <stdlib.h> #define TRUE 1 #define FALSE 0 #define MAXV 100 #define MAXL 100 #define MAXT 100 #define OUTSIDE 0 int vs[MAXL]; /*始点のxyインデクス*/ int ve[MAXL]; /*終点のxyインデクス*/ int lscw[MAXL]; /*始点のclockwise line*/ int lecw[MAXL]; /*終点のclockwise line*/ int lscc[MAXL]; /*始点のcounter clockwise line*/ int lecc[MAXL]; /*終点のcounter clockwise line*/ int lt[MAXL]; /* left triangle */ int rt[MAXL]; /* right triangle */ int lfromv[MAXV]; /* any line from the vertex */ int lfromt[MAXT]; /* any line from the triangle */ double x[MAXV],y[MAXV]; int nxy; //頂点の数 int nvcurrent; /* 現時点での頂点数 */ int nline; /* number of lines */ int ntriangle /* number of triangles */ void makepoints(int *nxy,double *x,double *y); int tdet(int a1, int b1, int c1, int a2, int b2, int c2, int a3, int b3, int c3){ int retvalp, retvaln; retvalp = a1*b2*c3+a2*b3*c1+a3*b1*c2; retvaln = a1*b3*c2+a2*b1*c3+a3*b2*c1; return retvalp-retvaln; } int leftside(int vertex1, int vertex2, int vertex3)/*次の点が右側にあるか左側にあるか判定*/{ int a1, b1, c1, a2, b2, c2, a3, b3, c3; a1 = 1.0 ; b1 = x[vertex1]; c1 = y[vertex1]; a2 = 1.0 ; b2 = x[vertex2]; c2 = y[vertex2]; a3 = 1.0 ; b3 = x[vertex3]; c3 = y[vertex3]; if(tdet(a1, b1, c1, a2, b2, c2, a3, b3, c3)>0){ return TRUE; }else{ return FALSE; }; } void first_t(){ /* first 3 points are 1, 2 and 3 . */ if(leftside(1, 2, 3)==FALSE){ vs[1]= 1; ve[1]=2; vs[2]= 2; ve[2]=3; vs[3]= 3; ve[3]=1; lscc[1]=3 ; lscw[1]=3 ; lecc[1]=2 ; lecw[1]=2 ; lscc[2]=1 ; lscw[2]=1 ; lecc[2]=3 ; lecw[2]=3 ; lscc[3]=2 ; lscw[3]=2 ; lecc[3]=1 ; lecw[3]=1 ; lt[1]= OUTSIDE ; rt[1]= 1; lt[2]= OUTSIDE ; rt[2]= 1; lt[3]= OUTSIDE ; rt[3]= 1; lfromv[1]=1; lfromv[2]=2; lfromv[3]=3; lfromt[1]=1; nvcurrent =3; nline =3; ntriangle =1; }else/*leftside(1, 2, 3)==TRUE*/{ }; return; }
- 使用しているJUnitのバージョン確認の方法
OS:WindowsXPpro JDK:6update12 JUnit4.8を使用したいのですが Eclipse3.5.1EEは初期状態での JUnitのパッケージのバージョンは4.4.xになっています。 そこで、プロジェクトにJUnit4.8.jarへのクラスパスを通し、 使用しているJUnitが変わったことを確認しようとしたのですが 使われているJUnitのバージョンの取得方法が分かりませんでした。 実際にEclipseで使用されたJUnitのバージョンを確認する方法はありませんでしょうか? # この質問は以下の質問の続きになっています。 # 「Eclipse3.5.1のJUnitぼバージョンアップ方法」 # http://oshiete1.goo.ne.jp/qa5505472.html
- ボタン押したときにすでに表示されている画面の再表示を禁止したい。
以下のプログラムで別画面の表示を行います。 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { JFrame re = new Set(); re.setVisible(true); } しかしこのプログラムではボタンを押す度に別画面を表示されてしまします。 同じ画面を開くことを禁止するにはどのようにすれば良いでしょうか?
- このプログラムのelse以降についての書き方
以下のプログラムで、else以降についての書き方がわからず困っています。 このプログラムは、ランダムに与えられた点配置でx座標の小さい順からまず、三つ取り出し、三角形を作っていくのですが、最後のif文の点から点、辺から辺、辺から三角形など参照しているところで行き詰まっています。個々の配列の番号と=1とか2などの意味だけでも、分かる方いたら教えてください。よろしくお願いします。 --------------------------------------------------- #include <stdio.h> #include <stdlib.h> #define TRUE 1 #define FALSE 0 #define MAXV 100 #define MAXL 100 #define MAXT 100 #define OUTSIDE 0 int vs[MAXL]; /*始点のxyインデクス*/ int ve[MAXL]; /*終点のxyインデクス*/ int lscw[MAXL]; /*始点のclockwise line*/ int lecw[MAXL]; /*終点のclockwise line*/ int lscc[MAXL]; /*始点のcounter clockwise line*/ int lecc[MAXL]; /*終点のcounter clockwise line*/ int lt[MAXL]; /* left triangle */ int rt[MAXL]; /* right triangle */ int lfromv[MAXV]; /* any line from the vertex */ int lfromt[MAXT]; /* any line from the triangle */ double x[MAXV],y[MAXV]; int nxy; //頂点の数 int nvcurrent; /* 現時点での頂点数 */ int nline; /* number of lines */ int ntriangle /* number of triangles */ void makepoints(int *nxy,double *x,double *y); int tdet(int a1, int b1, int c1, int a2, int b2, int c2, int a3, int b3, int c3){ int retvalp, retvaln; retvalp = a1*b2*c3+a2*b3*c1+a3*b1*c2; retvaln = a1*b3*c2+a2*b1*c3+a3*b2*c1; return retvalp-retvaln; } int leftside(int vertex1, int vertex2, int vertex3)/*次の点が右側にあるか左側にあるか判定*/{ int a1, b1, c1, a2, b2, c2, a3, b3, c3; a1 = 1.0 ; b1 = x[vertex1]; c1 = y[vertex1]; a2 = 1.0 ; b2 = x[vertex2]; c2 = y[vertex2]; a3 = 1.0 ; b3 = x[vertex3]; c3 = y[vertex3]; if(tdet(a1, b1, c1, a2, b2, c2, a3, b3, c3)>0){ return TRUE; }else{ return FALSE; }; } void first_t(){ /* first 3 points are 1, 2 and 3 . */ if(leftside(1, 2, 3)==FALSE){ vs[1]= 1; ve[1]=2; vs[2]= 2; ve[2]=3; vs[3]= 3; ve[3]=1; lscc[1]=3 ; lscw[1]=3 ; lecc[1]=2 ; lecw[1]=2 ; lscc[2]=1 ; lscw[2]=1 ; lecc[2]=3 ; lecw[2]=3 ; lscc[3]=2 ; lscw[3]=2 ; lecc[3]=1 ; lecw[3]=1 ; lt[1]= OUTSIDE ; rt[1]= 1; lt[2]= OUTSIDE ; rt[2]= 1; lt[3]= OUTSIDE ; rt[3]= 1; lfromv[1]=1; lfromv[2]=2; lfromv[3]=3; lfromt[1]=1; nvcurrent =3; nline =3; ntriangle =1; }else/*leftside(1, 2, 3)==TRUE*/{ }; return; }
- 大きいバイトの宣言の仕方
サーバ側からクライアント側へ ファイルを転送したいと考えています。 UserModeLinuxのルートファイルシステム(4294971392バイト)を送信するのですが、 宣言の部分で 「byte[] data = new byte[4294971392]」 で宣言すると 「型intのリテラル4294971392は範囲外です」 というエラーが出てしまいます。 どのように宣言すればよいでしょうか。
- 大きいバイトの宣言の仕方
サーバ側からクライアント側へ ファイルを転送したいと考えています。 UserModeLinuxのルートファイルシステム(4294971392バイト)を送信するのですが、 宣言の部分で 「byte[] data = new byte[4294971392]」 で宣言すると 「型intのリテラル4294971392は範囲外です」 というエラーが出てしまいます。 どのように宣言すればよいでしょうか。
- このプログラムのelse以降についての書き方
以下のプログラムで、else以降についての書き方がわからず困っています。 このプログラムは、ランダムに与えられた点配置でx座標の小さい順からまず、三つ取り出し、三角形を作っていくのですが、最後のif文の点から点、辺から辺、辺から三角形など参照しているところで行き詰まっています。個々の配列の番号と=1とか2などの意味だけでも、分かる方いたら教えてください。よろしくお願いします。 --------------------------------------------------- #include <stdio.h> #include <stdlib.h> #define TRUE 1 #define FALSE 0 #define MAXV 100 #define MAXL 100 #define MAXT 100 #define OUTSIDE 0 int vs[MAXL]; /*始点のxyインデクス*/ int ve[MAXL]; /*終点のxyインデクス*/ int lscw[MAXL]; /*始点のclockwise line*/ int lecw[MAXL]; /*終点のclockwise line*/ int lscc[MAXL]; /*始点のcounter clockwise line*/ int lecc[MAXL]; /*終点のcounter clockwise line*/ int lt[MAXL]; /* left triangle */ int rt[MAXL]; /* right triangle */ int lfromv[MAXV]; /* any line from the vertex */ int lfromt[MAXT]; /* any line from the triangle */ double x[MAXV],y[MAXV]; int nxy; //頂点の数 int nvcurrent; /* 現時点での頂点数 */ int nline; /* number of lines */ int ntriangle /* number of triangles */ void makepoints(int *nxy,double *x,double *y); int tdet(int a1, int b1, int c1, int a2, int b2, int c2, int a3, int b3, int c3){ int retvalp, retvaln; retvalp = a1*b2*c3+a2*b3*c1+a3*b1*c2; retvaln = a1*b3*c2+a2*b1*c3+a3*b2*c1; return retvalp-retvaln; } int leftside(int vertex1, int vertex2, int vertex3)/*次の点が右側にあるか左側にあるか判定*/{ int a1, b1, c1, a2, b2, c2, a3, b3, c3; a1 = 1.0 ; b1 = x[vertex1]; c1 = y[vertex1]; a2 = 1.0 ; b2 = x[vertex2]; c2 = y[vertex2]; a3 = 1.0 ; b3 = x[vertex3]; c3 = y[vertex3]; if(tdet(a1, b1, c1, a2, b2, c2, a3, b3, c3)>0){ return TRUE; }else{ return FALSE; }; } void first_t(){ /* first 3 points are 1, 2 and 3 . */ if(leftside(1, 2, 3)==FALSE){ vs[1]= 1; ve[1]=2; vs[2]= 2; ve[2]=3; vs[3]= 3; ve[3]=1; lscc[1]=3 ; lscw[1]=3 ; lecc[1]=2 ; lecw[1]=2 ; lscc[2]=1 ; lscw[2]=1 ; lecc[2]=3 ; lecw[2]=3 ; lscc[3]=2 ; lscw[3]=2 ; lecc[3]=1 ; lecw[3]=1 ; lt[1]= OUTSIDE ; rt[1]= 1; lt[2]= OUTSIDE ; rt[2]= 1; lt[3]= OUTSIDE ; rt[3]= 1; lfromv[1]=1; lfromv[2]=2; lfromv[3]=3; lfromt[1]=1; nvcurrent =3; nline =3; ntriangle =1; }else/*leftside(1, 2, 3)==TRUE*/{ }; return; }
- C言語でシグマで総和を求める関数を作りたい
おかしな点がありましたらご指摘お願いします /* nの総和を求める関数 */ int sum(int n) { /* n-1 */ /* f(n) + Σ f(i) (n > 1) */ /* i=1 */ /* f(1) (n = 1) */ if (n > 1) return n + (n - 1) * (n / 2); /* 直接総和を返す*/ else if (n == 1) return 1; }
- ・スクロール状態を止める方法について
・スクロール状態を止める方法について 【開発環境】 VC++2008 Windowsフォームアプリ OS:Vista 【現状作ったもの】 タブのあるwebブラウザを作成しています。 既存のWebBrowserクラスを継承したクラスを作成してマウスクリックに対応させ、リンク上でマウス中央ボタンを押すと新しいタブでページを開くようにしました。 【問題点】 新しいタブを開いても、古い方のページの、マウスの中央ボタンによるスクロール状態が止まりません。 このスクロール状態を止める方法はあるのでしょうか。 よろしくお願いします。
- この先のプログラムの書き方
以下のプログラムは、x座標の小さい順に整列された点(このプログラムは文字数の関係で省略)を結び、三角形で分割するプログラムです。 質問なんですが、プログラム冒頭の構造体Inを定義し、辺を表す構造体のメンバとして保持しています。そして辺構造体の配列でキューを構成して、辺から端点を参照し、正しく凸方の三角形分割に分割できるようにしようとしたのですが、それでは不十分らしく、その下に書いてあるように、「辺から隣の辺」「辺から三角形」「点から辺」も参照できなければいけません。(一応この定義だけはしました) この後どうすればよいでしょうか。文字数の関係でうまく説明できなくすみません。回答よろしくお願いします。 ------------------------------------- #include <stdio.h> #include <stdlib.h> typedef struct In{ int vs; /*始点のxyインデクス*/ int ve; /*終点のxyインデクス*/ } LINE_V; typedef struct In2{ int lscw; /*始点のclockwise line*/ int lecw; /*終点のclockwise line*/ int lscc; /*始点のcounter clockwise line*/ int lecc; /*終点のcounter clockwise line*/ } LINE_L; typedef struct In3{ int lt; /* left triangle */ int rt; /* right triangle */ } LINE_T; typedef struct In4{ int lt; /* any line from the vertex */ } VTX_L; double x[100],y[100]; int nxy; //頂点の数 LINE_V *sgln;//辺のキュー int msg=100; //キューの寸法 int nsg=0; //辺の数 void makepoints(int *nxy,double *x,double *y); LINE_V *enqueseg(int vs,int ve); int tdet(int a1, int b1, int c1, int a2, int b2, int c2, int a3, int b3, int c3){ int retvalp, retvaln; retvalp = a1*b2*c3+a2*b3*c1+a3*b1*c2; retvaln = a1*b3*c2+a2*b1*c3+a3*b2*c1; return retvalp-retvaln; } int leftside(int vertex1, int vertex2, int vertex3){ int a1, b1, c1, a2, b2, c2, a3, b3, c3; a1 = 1.0 ; b1 = x[vertex1]; c1 = y[vertex1]; a2 = 1.0 ; b2 = x[vertex2]; c2 = y[vertex2]; a3 = 1.0 ; b3 = x[vertex3]; c3 = y[vertex3]; return tdet(a1, b1, c1, a2, b2, c2, a3, b3, c3); } int main() {int v0=0,v1=1,v2=2; int vnxt; makepoints(&nxy, x, y); //辺のキューを初期確保 sgln=(LINE_V*)malloc(sizeof(LINE_V)*msg); /* 三角形の頂点の組を表示 */ printf("Triangle 1 : %d %d %d\n,v0,v1,v2 "); //辺をキューに登録 sgln[0].vs = v0; sgln[0].ve = v1; sgln[1].vs = v1; sgln[1].ve = v2; sgln[2].vs = v2; sgln[2].ve = v0; nsg = 3; /* 各頂点の処理 */ for(vnxt=3;vnxt<nxy;vnxt++){ double m,k; int side1,side2; /* 傾きが極端に大きくなったときに計算誤差が発生。これが起こらないよう、傾きが1を境に処理をxとyで入れ替える*/ side1=leftside(v1, v2, v0); side2=leftside(v1, v2, vnxt); /* 判別結果によって次の三角形の頂点を 選択 */ if(side1^side2) {v0=v1; /* 排他的論理和を使って判別。side1/side2のいずれか一方のみが非0のとき条件成立 */ } /* else節はなくても一緒なので略す else{ triangle[0]=triangle[0]; } */ v1=v2; v2=vnxt; /* 三角形の頂点の組を表示 */ printf("Triangle_%d_:_%d_%d_%d\n",vnxt-1,v0,v1,v2); //3辺を追加登録 sgln = enqueseg(v0,v1); sgln = enqueseg(v1,v2); sgln = enqueseg(v2,v0); } LINE_V *enqueseg(int vs,int ve){ int k; int hit; int va,vb; //キューの拡張:倍々サイズ if(nsg==msg){ msg *= 2; sgln=(LINE_V*)realloc(sgln,sizeof(LINE_V)*msg); if(sgln==NULL){ //エラーメッセージと、exit(0); } } //重複登録チェック for(k=0;k<nsg;k++){ va = sgln[k].vs; vb = sgln[k].ve; hit = (va==vs&&vb==ve)||(va==ve&&vb==vs); if(hit) break; } //重複なし:新規登録 if(k==nsg){ sgln[nsg].vs = vs; sgln[nsg].ve = ve; nsg++; } return sgln; }
- JSPでの文字化け
こんにちは。 今JAVAを勉強中でJSPファイルを作成しています。 test.jsp <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J"%> <HTML> <HEAD><TITLE>文字表示テスト</TITLE></HEAD> <BODY> <% String text = request.getParameter("text"); if (text != null) { if (!text.equals("")) { out.println("画面からの文字<BR>"); out.println(text); } } %> <FORM NAME="testForm" METHOD="post" ACTION="test.jsp"> <TEXTAREA NAME="text"></TEXTAREA> <INPUT TYPE="submit" VALUE="送信"> </FORM> </BODY> </HTML> Windowsで上のプログラムを実行すると問題なく表示されますが Linuxサーバで実行すると???となってしまいます。
- C++の二次方程式のプログラム
#include <iostream> #include <cmath> using namespace std; int main() { double a,b,c; cin >> a >> b >> c; if(a==0) { cout << (-c/b) << '\n'; } else if((b*b-4*a*c)<0) { cout << (-b/2/a) << 'i' << sqrt(4*a*c-b*b)/2/a << '\n'; } else { cout << (-b/2/a) << sqrt(4*a*c+b*b)/2/a << '\n'; } return 0; } 最後のelseの下のcoutが本当に分からないんで教えてくださいお願いします。一応この条件(a=0の時、aが0以上の時、aが0以下の時)で出題されてるんですが…
- 締切済み
- C・C++・C#
- noname#127615
- 回答数6
- 並列処理プログラム
並列処理について。 画像imageの値が0より大きい場合に、managerを実行しますが、managerの計算時間が長いです。 そこで、4つのコアでpthreadにより、並列処理をさせたいんですが、 どのようにプログラムを書けばいいかすみませんが教えてください。 あるボクセルを計算中に、次のボクセルを計算するようなプログラム。。。 for (int z=0; z<32; z++){ for (int y=0; y<32; y++){ for (int x=0; x<32; x++){ if(image(x,y,z) > 0){ total += manager(x,y,z); } } } }
- 二次方程式のプログラム
C++で二次方程式の解を求めるんですが、虚数解の場合、a=0の場合、実数解の場合で求めるようにしているんですが、 #include <iostream> #include <cmath> using namespace std; int main() { double a,b,c; cin >> a >> b >> c; if(a==0) { cout << (-c/b) << '\n'; } else if((b*b-4*a*c)<0) { cout << (-b/2/a) << 'i' << sqrt(4*a*c-b*b)/2/a << '\n'; } else { この先の最後の一文教えてください。抜けてて書いてないんです。
- 締切済み
- C・C++・C#
- noname#127615
- 回答数7
- iPodのシャッフル機能をオフにしたい
iPod nano(2世?)を使ってますが、「設定」でシャッフル機能を「オフ」にしてるのに振ると頻繁にシャッフルされてしまいます。 動きながら使うことが多いので、とても困っています。 これは単なる故障なのでしょうか?
- ベストアンサー
- iPod・ウォークマン・音楽プレーヤー
- sokoniatta
- 回答数1