[linux] progress balk

Pagina: 1
Acties:

  • morphje
  • Registratie: Juni 2001
  • Laatst online: 06-08 11:40

morphje

let's all love lain

Topicstarter
Ja ik heb al de search gebruikt en nee ik kon niet echt nuttige dingen vinden op mijn probleem, behalve mb's te gaan tellen oid. Zo nu ik dat heb gehad nu even het probleem

Ik probeer een applicatie te maken welke een aantal functies heeft, het maakt veel gebruik van een aantal commando's zoals cp en tar. Je raad het al een progressbalk. Nou lijkt het me dat deze programma's ook een voortgang kunnen melden, alleen heb ik niet echt kunnen vinden wat ik wilde vinden.

Is het niet zo dat deze programma's een globale variabale in het systeem setten op een waarde waarmee ik kan kijken hoeveel % een tar al klaar is. Zoiets als ERRNO wat diverse functies gebruiken om een fout nummer aan te geven. RPM kan bijvoorbeeld een voorgang melden (zoals te zien in redhat install) Alleen is niet te vinden waar of hoe ik dat kan maken (nou jah, waar .... op het scherm natuurlijk :) )

Als iemand een ideetje op kan werpen, gaarne.

  • whoami
  • Registratie: December 2000
  • Laatst online: 11:20
In welke taal wil je dat programma maken? Linux in de topic title zegt niet veel hoor....

https://fgheysels.github.io/


  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 20-07 09:47
Je wilt kijken hoever een aanroep van tar of cp is? Ik geloof niet dat je dat kan opvragen bij die twee.. Je zou eens kunnen kijken of er archiveer-frontends zijn die dat wel doen voor bijvoorbeeld tar en eens zien hoe zij dat doen.

Je kan zowiezo tar aanroepen met -v om in ieder geval te laten zien met welke file hij bezig is.

  • morphje
  • Registratie: Juni 2001
  • Laatst online: 06-08 11:40

morphje

let's all love lain

Topicstarter
whoami schreef op 27 January 2003 @ 19:48:
In welke taal wil je dat programma maken? Linux in de topic title zegt niet veel hoor....
in principe maakt het niet uit (ik ga het in C maken)
maar c, c++ perl of bash kan altijd wel op de een of andere manier meerdere processen starten en allemaal kunnen ze globale variabelen uitlezen.

en op die andere reactie. Ik kan natuurlijk kijken hoe andere grafische programma's het doen, maar das vaak een hoop code om door te spitten voor de juiste code, als iemand hier een balletje op kon gooien waarop ik kon zoeken had het mooi geweest. Waarschijnlijk word het toch wel die optie ben ik bang van :/

Maar goed, als iemand nog steeds een suggestie heb, graag :)

Verwijderd

Ik zou ook -v gebruiken. Je kan bij cp de lijst files gebruiken i.c.m. -v om te zien hoe ver je bent, en als je de lijst files die je copieert bekijkt kun je dat zelfs op grootte rangschikken. Ook bij tar kun je die lijst aanroepen.

Natuurlijk kun je ook je eigen cp functie schrijven (supersimpel) die af en toe progress signals geeft in een file-copy. Bij tar is dit iets moeilijker, maar er is een libtar. :). Als je die gebruikt moet ook dit niet al te moeilijk zijn, alhoewel ik dan niet zeker weet of je progress-within-file kan signallen. Maargoed, dan hoef je de externe commando's niet aan te roepen, scheelt toch al wat in programma-moeilijkheid.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
Zelfs "ERRNO" is niet globaal; dat is een separate variabele per applicatie/thread. Die kun je dus ook niet zomaar vanuit een andere applicatie lezen, als je dat probeert krijg je de errno van je eigen proces.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
Wat misschien ook wel werkt is dat je eerst dmv. bijv. find kijkt wat door het tar op cp commando gepakt zal worden en dat vervolgens tijdens het tarren of cp'en met de oorspronkelijke waarde vergelijkt, dan krijg je echter alleen iets in de trant van:
"ik heb al 5 files van de 13 gecopieerd." Filesize enzo zal die op die manier niet meenemen, maar misschien dat je er wat aan hebt om verder te gaan ...

Everyone complains of his memory, no one of his judgement.


  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 24-08 22:02
Kun je niet met stat -c %s <file> kijken hoe groot de nieuwe file is?

[ Voor 23% gewijzigd door Jelmer op 28-01-2003 15:35 ]


  • morphje
  • Registratie: Juni 2001
  • Laatst online: 06-08 11:40

morphje

let's all love lain

Topicstarter
libtar: zal ik even naar kijken, misschien wel interessant materiaal ookal kan ik niet per direct gebruiken

ERRNO globaal bedoelde ik dus binnen de app, mijn excuses :)

cp -v oid kan niet echt, zeker niet bij die tar.gz, want het zijn 3 files, waarvan eentje 2 gig en de 2 andere < 5meg

stat -c %s lijkt me een leuke, ga ik ook eens naar kijken

Interessante tips allemaal :)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23-08 10:39

Janoz

Moderator Devschuur®

!litemod

Het copy gedeelte zou je trouwens ook simpel zelf kunnen implementeren. Een input stream, output stream. Grote buffer en wat tellers (voor de progress bar) en klaar (Nu wel ff hopen dat het net zo snel is :) ). Maar is het onder linux niet zo dat je gewoon op kunt vragen hoe groot een bestand tot nu toe is? Bij windows zie je dat pas waneer ie klaar is met schrijven, maar bij linux was dat dacht ik niet zo.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1