2011-04-21 9 views
0
私はソケットを介して受信します(ビデオの小さな塊)ファイルとして

C.はどのように、C

を使用してパス /var/streaming/playlists/chunkcombined/chunkcombined.playlistにあるファイル chunkcombined.playlistに書きたい

を使用してLinuxで特定のパスにあるファイルに書き込みます私はそれらを自動的にプレイリストに追加したいと思います。そのために

私はCを使用してファイルchunkcombined.playlistに以下の行を書きたい:私はCを使用してLinuxで特定のパスにあるファイルに書き込むことができますどのように

"/usr/local/movies//chunk0.mp4" 1 
"/usr/local/movies//chunk1.mp4" 1 
"/usr/local/movies//chunk2.mp4" 1 
"/usr/local/movies//chunk3.mp4" 5 
"/usr/local/movies//chunk4.mp4" 5 

+1

あなたがLinux上にいるので、なぜbashスクリプトを使用しないでください。 –

+2

通常のユーザーは通常、/ usr/localに自由に書き込むことができないので、許可に基づく制限があります。 – unwind

答えて

2

fopen()およびfputs()機能を使用してください。 (過剰なコメント付き)

フル例:

#include <stdio.h> 

int main(void) 
{ 
    /* where to write */ 
    const char filepath[] = 
     "/var/streaming/playlists/chunkcombined/chunkcombined.playlist"; 

    /* what to write */ 
    const char output_lines[] = 
     "\"/usr/local/movies//chunk0.mp4\" 1\n" 
     "\"/usr/local/movies//chunk1.mp4\" 1\n" 
     "\"/usr/local/movies//chunk2.mp4\" 1\n" 
     "\"/usr/local/movies//chunk3.mp4\" 5\n" 
     "\"/usr/local/movies//chunk4.mp4\" 5\n"; 

    /* define file handle */ 
    FILE *output; 

    /* open the file */ 
    output = fopen(filepath, "wb"); 
    if(output == NULL) return -1; /* fopen failed */ 

    /* write the lines */ 
    fputs(output_lines, output); 

    /* close the file */ 
    fclose(output); 

    return 0; 
} 

このバージョンでは、プログラムへの引数として与えられたテキスト行を取得し、目的のファイルに書き込み:

#include <stdio.h> 

int main(int argc, char *argv[]) 
{ 
    if(argv[1] == NULL) return -1; /* no arguments, bail out */ 

    /* where to write */ 
    const char filepath[] = 
     "/var/streaming/playlists/chunkcombined/chunkcombined.playlist"; 

    /* define file handle */ 
    FILE *output; 

    /* open the file */ 
    output = fopen(filepath, "wb"); /* change "wb" to "ab" for append mode */ 
    if(output == NULL) return -1; /* fopen failed */ 

    /* write the lines */ 
    fputs(argv[1], output); 
    putc('\n', output); 

    /* close the file */ 
    fclose(output); 

    return 0; 
} 

例:

./write "\"Hello, World!\""

書き込み:"Hello, World!"

へ:

/var/streaming/playlists/chunkcombined/chunkcombined.playlist

+0

ご協力いただきありがとうございます!1それは動作します – user685875

+1

問題ありません。それが役に立ちましたら、この回答に「受け入れられた」とタグ付けすることは丁寧です。 –