LINUX.ORG.RU

манипуляции со строками в сях


0

0

код

....

      struct timeval tv0;
      gettimeofday(&tv0,NULL);
      printf("%.6d.%.6d\n",tv0.tv_sec, tv0.tv_usec);
      printf("%s\n",settings->stats->output_filename);

....

дает вывод 

[root@observ lavtools]# LAV_VIDEO_DEV=/dev/video1 ./lavrec -f a -i p -d1 -l -l -a 0 -q 100 -t 1 /mnt/data/mnt/work/outfile.avi
time = 1207907394.299197 ms
/mnt/data/mnt/work/outfile.avi
0.00.01:00 int:040 lst:  0 ins:  0 del:  0 ae:  0 td1=0.000 td2=0.000
Recording time  :  0.00.01:00
Lost frames     : 0
A/V sync ins/del: 0/0
Audio errors    : 0
[root@observ lavtools]#

При помощи какой функции можно в имя файла, содержащееся в 
settings->stats->output_filename вставить время, т.е. хочется, 
чтобы в settings->stats->output_filename содержалось не 
/mnt/data/mnt/work/outfile.avi  а например /mnt/data/mnt/work/outfile.1207907394.299197.avi

ну или если в текущую директорию сохранение будет, то спереди к  названию файла приляпать время его создания с точностью до 6-го знака.

переменную settings->stats->output_filename можно менять.

Спасибо!
☆☆

скажи, ты доволен своей жизнью?

anonymous
()

Забекапить указатель output_filename, выделить память заново. (Или, если возможно, realloc сделать). Далее memcpy, strcat по вкусу.

Deleted
()

За рута не зачёт.

anonymous
()
Ответ на: комментарий от kto_tama

Спасибо!!! То что надо =)

....

struct timeval tv0;
gettimeofday(&tv0,NULL);
printf("time = %6d.%.6d ms\n",tv0.tv_sec, tv0.tv_usec);
printf("%s\n",settings->stats->output_filename);
sprintf (settings->stats->output_filename,"%.6d.%.6d",tv0.tv_sec,tv0.tv_usec);
strcat(settings->stats->output_filename,".avi");

....

теперь оно пишет файло в текущую директорию c именем в виде времени 

[root@observ lavtools]# LAV_VIDEO_DEV=/dev/video1 ./lavrec -f a -i p -d1 -l -l -a 0 -q 100 -t 1 outfile.avi; ls *.avi
time = 1207911315.083717 ms
outfile.avi
0.00.01:00 int:040 lst:  0 ins:  0 del:  0 ae:  0 td1=0.000 td2=0.000
Recording time  :  0.00.01:00
Lost frames     : 0
A/V sync ins/del: 0/0
Audio errors    : 0
1207911306.363631.avi  1207911315.083717.avi
[root@observ lavtools]#

Спасибо всем!

vilfred ☆☆
() автор топика

basename, dirname, (s)printf.

anonymous
()

мля, кто мешает передавать проге название файла не /.../outfile.avi а /.../outfile_`date параметры`.avi ?????

anonymous
()
Ответ на: комментарий от anonymous

это еще не говно, вот последний вариант, т.е. труЪ говно

      /* Vyvod vremeny v imya file */
      time_t rawtime;
      time ( &rawtime );
      struct timeval tv0;
      gettimeofday(&tv0,NULL);
      printf("time = %6d.%.6d ms\n",tv0.tv_sec, tv0.tv_usec);
      printf("%s\n",settings->stats->output_filename);
      sprintf (settings->stats->output_filename,"%s %.6d.%.6d",ctime(&rawtime),tv0.tv_sec,tv0.tv_usec);
      strcat(settings->stats->output_filename,".avi");
      int i=0;
      for (i=0;i<strlen (settings->stats->output_filename);i++){
        if (settings->stats->output_filename[i]=='\n') {
          settings->stats->output_filename[i]='_';
        }
        if (settings->stats->output_filename[i]==' ') {
          settings->stats->output_filename[i]='_';
        }
      }


выдает такое файло

-rw-r--r--    1 root     root       447236 юОП 11 12:01 Fri_Apr_11_12:01:46_2008__1207915306.187215.avi
-rw-r--r--    1 root     root       448204 юОП 11 12:04 Fri_Apr_11_12:04:06_2008__1207915446.028902.avi

Все, ребята, спасибо большое! Это все на самом деле было нужно 
для этого: http://www.linux.org.ru/view-message.jsp?msgid=2651753

vilfred ☆☆
() автор топика
Ответ на: комментарий от vilfred

у тебя знаний не только в Сях мало. почитай доки по шелу и прочим приблудам. и в особенности почитай про анти-паттерны! (там что-то было про то, что программа не должна переиначивать запросы пользователя) то, как ты релизовываешь прогу - это чистейшей воды идиотизм. твою прогу вряд ли будут запускать дважды. а тебя материть еще хуже, чем Быдла Гейтса

anonymous
()

что-то я не понял, settings->stats->output_filename - это что такое?

char[] заведомо большого размера? Тогда ок.

Или char*, указывающий на динамически выделенную память, размером в аккурат под "/mnt/data/mnt/work/outfile.avi"? Если так, то я удивляюсь, как твоя программа до сих пор в кору не выпала, при записи-то в ограниченную строку sprintf'ом?

alexsaa
()
Ответ на: комментарий от alexsaa

это какая-то структра определяемая в mjpegtools, четкого определения не имеет т/к/ неизвестна длина пути до файла... както так...

vilfred ☆☆
() автор топика
Ответ на: комментарий от Deleted

наблюдения велись в условиях сильно-переменной облачности с высоким
ветром. Поэтому внутри окна на видео-камере звезды видно прим. 60% времени, на куске матрицы с большого телескопа ~80% времени (однако выдержку пришлось ставить большую 0.5 сек)

Данные с alta уже предварительно обработаны. Затмения не обнаружено.
Визуально на фильме его так же нет.

Т.к. погоды была непригодная для скольугодно качественной фотометрии
(особенно слабой звезды сравнения) разброс очень велик.

Рис.2 ненормированный поток от затмеваемой звезды. Фильм сделанный по
результатам набл. на Апогее см. здесь.

http://observ.pereplet.ru/images/evgeny/aster20080412.gif (18 мб весит)

это не ролик, сам ролик весит 10 Гб и в процессе так сказать.

vilfred ☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.