The UNIX and Linux Forums  

Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > 高レベルのプログラミング
Googleのunix.com



高レベルのプログラミング は、 C 、 C + +についての質問の投稿は、 Java 、 SQL 、および他のプログラミング言語です。

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
ゼロ以外の値をチェックする philplasma UNIXのダミー質問と回答のため 6 2008年1月8日 04:51午後
チェックのUID filthymonk シェルプログラミングとスクリプティング 7 2007年7月19日 11:40午後
cp進捗状況をチェックする MarGur UNIXのダミー質問と回答のため 0 2007年5月15日 05:13午後
のPXEをチェックする マエストロ@ altiris Sun Solaris 5 2004年5月25日 01:06午前

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2008年3月6日
ramkrix ramkrix is offline
登録ユーザー
  
 

参加日: 2007年12月
場所: TamilNadu 、インド
投稿: 52
Exclamation EOFを、以下のチェック

やあ、

私はシステムの運動プログラムの午前の練習を呼んでいる。

新株予約権の行使の質問:ユーザーからのファイル名を受け入れることをポグラム書いてみませんか?このプログラムは標準出力にファイルのecery 5番目のバイトを書く必要があります。

私のプログラム:

#含まれ<stdio.h>
#含まれ<fcntl.h>
#含まれ<error.h>

主( )

INTはfd 、 first_offset \u003d 5 、 move_offset \u003d 0は、 X \u003d 1 ;
一、名前[ 20 ]文字;
scanf ( " % "は、名) ;

fd \u003dオープン(名前、 O_RDONLY 、 0755 ) ;
printf ( " % d個のfd " 、 fd ) ;

場合( fd \u003d\u003d- 1 )

printf ( "エラー" ) ;
出口( 1 ) ;


一方(のX < 5 )

move_offset \u003d move_offset + first_offset ;
lseek ( move_offset fd - 1 、 0 ) ;
読む( 、名前、 sizeof (名前) ) fd ;
( 1名、 1 )を書く;
のX + + ;




出力:
[ ramki @ lindesk3 sysint_ex ] $蹐またはex1.c - ex1
[ ramki @ lindesk3 sysint_ex ] $ ./ex1
。 /テスト
FIVEfd 3です

ファイルを"テスト"のコンテンツ:
abcdFfghiIklmnVpqrsE



私の質問今すぐ:
1 。このプログラムでは、私はvaraibleの" X "との比較では、 whileループに使用されるランダムなの私の選択5 。その代わりに私は、 EOFをwhilepartで状態をチェックしたい。どのように確認してください。
fopenソジョン場合はファイルポインタを使用していると、私たちは( ( fp ) \u003d\u003d 0 ) feofを使用することができます。しかし、ここで使用されると私ドンsyatem通話状態を確認する方法については知っている。

2 。 Teのプログラムの出力では、 " "は、プリントする前に、 5 filedescriptor号を発見した。しかし、私のプログラムの流れとして1 、最初に印刷されている必要がありますし、出力fd " 5 " 。

このプログラムをより簡単かつ正確に、特にファイルの名前を得るためpiointerを使用して、配列を使用してinstaed書く3.Is何かothet方法です。

ヘルプしてください...

ありがとう、
Ramkrix
  #2固定リンク)  
Old 2008年3月6日
シャムロック shamrock is offline Forum Advisor  
登録ユーザー
  
 

参加日: 2007年10月
場所:アメリカ合衆国
投稿数: 753
引用:
当初の投稿 ramkrix View Post

私の質問今すぐ:
1 。このプログラムでは、私はvaraibleの" X "との比較では、 whileループに使用されるランダムなの私の選択5 。その代わりに私は、 EOFをwhilepartで状態をチェックしたい。どのように確認してください。
fopenソジョン場合はファイルポインタを使用していると、私たちは( ( fp ) \u003d\u003d 0 ) feofを使用することができます。しかし、ここで使用されると私ドンsyatem通話状態を確認する方法については知っている。

2 。 Teのプログラムの出力では、 " "は、プリントする前に、 5 filedescriptor号を発見した。しかし、私のプログラムの流れとして1 、最初に印刷されている必要がありますし、出力fd " 5 " 。

このプログラムをより簡単かつ正確に、特にファイルの名前を得るためpiointerを使用して、配列を使用してinstaed書く3.Is何かothet方法です。

ヘルプしてください...

ありがとう、
Ramkrix


コード:
#include <stdio.h>

main(int argc, char *argv[])
{
    char *infile;
    FILE *stream;

    infile = argv[1];
    stream = fopen(infile, "r");
}

...今はfeofまたはferrorストリームの状態のような機能を使うことができます。
  #3固定リンク)  
Old 2008年3月7日
ramkrix ramkrix is offline
登録ユーザー
  
 

参加日: 2007年12月
場所: TamilNadu 、インド
投稿: 52
Red face

ご返信いただきありがとうございますシャムロック..

tisされている方法は、 whileループの条件を含める必要があります:

中( feof (ストリーム) \u003d\u003d 0 )

あなたにもう1つの質問:私たちのプログラムではなく、絶対的なシステムコールを持つことで、このチェックすることができます.. argsと、コマンドラインを使用するCライブラリfns

事前のおかげで、
Ramkrix
  #4固定リンク)  
Old 2008年3月7日
シャムロック shamrock is offline Forum Advisor  
登録ユーザー
  
 

参加日: 2007年10月
場所:アメリカ合衆国
投稿数: 753
引用:
当初の投稿 ramkrix View Post
ご返信いただきありがとうございますシャムロック..

tisされている方法は、 whileループの条件を含める必要があります:

中( feof (ストリーム) \u003d\u003d 0 )

あなたにもう1つの質問:私たちのプログラムではなく、絶対的なシステムコールを持つことで、このチェックすることができます.. argsと、コマンドラインを使用するCライブラリfns

事前のおかげで、
Ramkrix
あなたが" "ではなく、 fopenのような標準Cライブラリルーチンの絶対的なシステムコールを使用することができます( )とは、オープン( )システムコールでは、入力ファイル名hardcodingを犠牲にしては、コマンドラインの引数としては、入力ファイル名のパスを避けることができます。

システムコールのアプローチは、入力ファイルから一度に5バイトの読み込みと標準出力には、 5番目のバイトの印刷用に優れています。このメソッドは、カウンタをインクリメントを繰り返しテストよりも優先されている場合のX < 5またはEOFをチェック( )関数は、標準のlibにfeofを使用しています。


コード:
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>

main(int argc, char *argv[])
{
    int fd;
    char name[5];

    fd = open("/path/to/input/file", O_RDONLY);

    while (read(fd, (void *) name, (size_t) 5) == 5)
        printf("the fifth byte is %c\n", name[4]);
}

  #5固定リンク)  
Old 2008年3月10日
ramkrix ramkrix is offline
登録ユーザー
  
 

参加日: 2007年12月
場所: TamilNadu 、インド
投稿: 52
有用な情報シャムロックは再び感謝します。

私にお返事から最後のキュー求めるみましょう:
中(読み取り( 、 (ボイドfd * )氏名、 ( size_tの) 5 ) \u003d\u003d 5 )

" ( size_tの) 5 " 、と意味は何ですか? Bcoz私は本からは、我々は最後に( )演算子は、 sizeofを与える必要がある読むありません。また、値を" \u003d\u003d 5 〜 " comaparingは何ですか?私はここを理解することができませんでした。

以下の1つのプログラムで何を私のコードです: 読む( 、名前、 sizeof (名前) ) fd ;

私は正しいものだったか?
  #6固定リンク)  
Old 2008年3月10日
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
モデレータ
  
 

参加日: 2003年12月
場所:フロリダ州
投稿数: 1,941
引用:
以下の1つのプログラムで何を私のコードです:読む( 、名前、 sizeof (名前) ) fd ;
私は正しいものだったか?
つまり、文字から20文字の名前[ 20名の配列として定義されてsizeof (名前) 20 ] 。したがって、あなたのプログラムを同時にしようとすると、 20バイトを読む-のエラーチェック。

引用:
中(読み取り( 、 (ボイドfd * )氏名、 ( size_tの) 5 ) \u003d\u003d 5 )
ここでは、プログラムの5バイトとしているactally 5バイトの読み取りを確認しようとすると読む。 size_tのISOのCサイズの情報を表すのに使用するために、望ましい異なるアーキテクチャとプログラミングモデルを非常に有用なwhienコードを移植され定義されている。これは、符号なし整数タイプにすることが必要です。典型的には、 INTは長い。
Closed Thread

ブックマーク

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 05:08午前


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0