Dennis Wronka
Soulcollector
Hi, seit langem mal wieder ein C-Problem meinerseits.
Fuer meine LiveCD baue ich auch die SquashFS-Tools, welche aber in Standardausfuehrung den Progressbalken auf STDOUT schreiben.
Da die Linux-Live-Scripts aber die Ausgabe in /dev/null umlenken sehe ich nichts vom Fortschritt.
Die SquashFS-Tools die bei den Live-Scripts dabei sind kommen damit klar, der groesste Teil der Ausgabe laeuft nach /dev/null, der Progressbalken aber wird angezeigt.
Beide Male ueber den Aufruf
Ich hab das C-File nun schon umgeschrieben, dass auf STDERR ausgegeben wird, und auch direkt auf /dev/tty.
Ersteres hatte zwar eine Ausgabe zur Folge, aber nicht die erwuenschte. Zweiteres wurde auch nach /dev/null umgeleitet wenn ich das recht gesehen hab.
Ich gehe also davon aus, dass STDERR der richtige Weg ist, jedoch wird dort ziemlicher Kaese ausgegeben, und zwar der Progressbalken immer wieder hintereinander, obwohl, wenn ich das recht im Code sehe, ein CR stattfinden sollte.
Ich werd auf jeden Fall mal weiterschauen, fuer Tipps waere ich aber dankbar.
Nachtrag: Es muss ueber STDERR laufen, denn der Aufruf
brachte nur die anderen Ausgaben, aber nicht den Progressbalken.
Nachtrag 2:
Hier die Funktion im Original:
Hier meine angepasste Fassung
und die etwas missgestaltete Ausgabe dieser
Fuer meine LiveCD baue ich auch die SquashFS-Tools, welche aber in Standardausfuehrung den Progressbalken auf STDOUT schreiben.
Da die Linux-Live-Scripts aber die Ausgabe in /dev/null umlenken sehe ich nichts vom Fortschritt.
Die SquashFS-Tools die bei den Live-Scripts dabei sind kommen damit klar, der groesste Teil der Ausgabe laeuft nach /dev/null, der Progressbalken aber wird angezeigt.
Beide Male ueber den Aufruf
Bash:
mksquashfs /bin /bin.mo > /dev/null
Ersteres hatte zwar eine Ausgabe zur Folge, aber nicht die erwuenschte. Zweiteres wurde auch nach /dev/null umgeleitet wenn ich das recht gesehen hab.
Ich gehe also davon aus, dass STDERR der richtige Weg ist, jedoch wird dort ziemlicher Kaese ausgegeben, und zwar der Progressbalken immer wieder hintereinander, obwohl, wenn ich das recht im Code sehe, ein CR stattfinden sollte.
Ich werd auf jeden Fall mal weiterschauen, fuer Tipps waere ich aber dankbar.
Nachtrag: Es muss ueber STDERR laufen, denn der Aufruf
Bash:
mksquashfs /bin /bin.mo 2> /dev/null
Nachtrag 2:
Hier die Funktion im Original:
C:
int progress_bar(long long current, long long max, int columns)
{
int max_digits = ceil(log10(max));
int used = max_digits * 2 + 10;
int hashes = (current * (columns - used)) / max;
int spaces = columns - used - hashes;
if(!progress || columns - used < 0)
return;
printf("\r[");
while (hashes --)
putchar('=');
while(spaces --)
putchar(' ');
printf("] %*lld/%*lld", max_digits, current, max_digits, max);
printf(" %3lld%%", current * 100 / max);
fflush(stdout);
}
C:
int progress_bar(long long current, long long max, int columns)
{
int max_digits = ceil(log10(max));
int used = max_digits * 2 + 10;
int hashes = (current * (columns - used)) / max;
int spaces = columns - used - hashes;
if(!progress || columns - used < 0)
return;
printf(stderr,"\r[");
while (hashes --)
fputc('=',stderr);
while(spaces --)
fputc(' ',stderr);
printf(stderr,"] %*lld/%*lld", max_digits, current, max_digits, max);
printf(stderr," %3lld%%", current * 100 / max);
//fflush(stdout);
}
Mir scheint fast als muesste ich noch eine Funktion anpassen, denn hier scheinen ja auch die Prozentzahlen zu fehlen.= = = = == == == == === === === === === ==== ==== ==== ==== ===== ===== ===== ===== ====== ====== ====== ====== ====== ======= ======= ======= ======= ======== ======== ======== ======== ========= ========= ========= ========= ========== ========== ========== ========== ========== =========== =========== =========== =========== ============ ============ ============ ============ ============= ============= ============= ============= ============= ============== ============== ============== ============== =============== =============== =============== =============== ================ ================ ================ ================ ================ ================= ================= ================= ================= ================== ================== ================== ================== =================== =================== =================== =================== ==================== ==================== ==================== ==================== ==================== ===================== ===================== ===================== ===================== ====================== ====================== ====================== ====================== ======================= ======================= ======================= ======================= ======================= ======================== ======================== ======================== ======================== ========================= ========================= ========================= ========================= ========================== ========================== ========================== ========================== ========================== =========================== =========================== =========================== =========================== ============================ ============================ ============================ ============================ ============================= ============================= ============================= ============================= ============================== ============================== ============================== ============================== ============================== =============================== =============================== =============================== =============================== ================================ ================================ ================================ ================================ ================================= ================================= ================================= ================================= ================================= ================================== ================================== ================================== ================================== =================================== =================================== =================================== =================================== ==================================== ==================================== ==================================== ==================================== ===================================== ===================================== ===================================== ===================================== ===================================== ====================================== ====================================== ====================================== ====================================== ======================================= ======================================= ======================================= ======================================= ======================================== ======================================== ======================================== ======================================== ======================================== ========================================= ========================================= ========================================= ========================================= ========================================== ========================================== ========================================== ========================================== =========================================== =========================================== =========================================== =========================================== =========================================== ============================================ ============================================ ============================================ ============================================ ============================================= ============================================= ============================================= ============================================= ============================================== ============================================== ============================================== ============================================== =============================================== =============================================== =============================================== =============================================== =============================================== ================================================ ================================================ ================================================ ================================================ ================================================= ================================================= ================================================= ================================================= ================================================== ================================================== ================================================== ================================================== ================================================== =================================================== =================================================== =================================================== =================================================== ==================================================== ==================================================== ==================================================== ==================================================== ===================================================== ===================================================== ===================================================== ===================================================== ===================================================== ====================================================== ====================================================== ====================================================== ====================================================== ======================================================= ======================================================= ======================================================= ======================================================= ======================================================== ======================================================== ======================================================== ======================================================== ========================================================= ========================================================= ========================================================= ========================================================= ========================================================= ========================================================== ========================================================== ========================================================== ========================================================== =========================================================== =========================================================== =========================================================== =========================================================== ============================================================ ============================================================ ============================================================ ============================================================ ============================================================ ============================================================= ============================================================= ============================================================= ============================================================= ============================================================== ============================================================== ============================================================== ============================================================== =============================================================== =============================================================== =============================================================== =============================================================== ================================================================