daysleper
-
Innlegg
296 -
Ble med
-
Besøkte siden sist
Innholdstype
Profiler
Forum
Hendelser
Blogger
Om forumet
Innlegg skrevet av daysleper
-
-
Dessuten så er det vel uansett meningen å fjerne slik debuggings-spesifik kode når du skal "release" programvaren.
Ikke at jeg vet helt hva du skal lage da..
-
Åh? Hvorfor det? Hva er galt?
Fra man -siden til ptrace:
...blablabla.. on error -1 is returned and errno is set ..errno:
EPERM
The specified process cannot be traced. This could be because the parent has insufficient privileges; non-root processes cannot trace processes that they cannot send signals to or those running setuid/setgid programs, for obvious reasons. Alternatively, the process may already be being traced, or be init (pid 1).
Har du noen annen løsning? -- Si i fra hvis du finner noe bedre da ..
-
eller .. her funka'n ja:
#include <stdio.h> #include <sys/ptrace.h> int main() { if(ptrace(PTRACE_TRACEME, 0, 1, 0) < 0) { printf("DEBUGGING... Bye\n"); return(1); } printf("Hello\n"); return(0); }
lars@blackbox tests $ ./test3Hello
lars@blackbox tests $ gdb test3
GNU gdb 6.0
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run
Starting program: /mnt/home/lars/tests/test3
DEBUGGING... Bye
Program exited with code 01.
(gdb)
..stilig!
-
http://www.searchlores.org/cesa_lat.htm
http://www.avet.com.pl/pipermail/bugdev/20...une/003872.html
Fikk ikke koden til å kompilere sånn med det første - men med litt "forskning" finner du kanskje ut av det.
-
..og videre kan du jo legge dette i en fil random.hh f.eks.:
#ifndef _OXYMORA_RANDOM_HH_ #define _OXYMORA_RANDOM_HH_ #include <cstdlib> // eventuellt stdlib.h, for rand() #include <time.h> namespace Oxymora { template<typename T> class Random { public: Random(T min_, T max_) :_min(min_), _max(max_) { srand(time(0)); _delta = RAND_MAX / (_max - _min); } T operator()(T min_, T max_) { _min = min_; _max = max_; _delta = RAND_MAX / (_max - _min); return(operator()()); } T operator()() { return((rand() / _delta) + _min); } private: T _min, _max; T _delta; }; // class Random } // namespace Oxymora #endif //#define _OXYMORA_RANDOM_HH_
..og lage en test.cpp fil der du bruker klassen Random slik:
#include "random.hh" #include <iostream> using namespace Oxymora; using namespace std; int main() { Random<float> randFloat(-10, -20); cerr << "5 tilfeldige flytetall mellom -10 og -20: "; for(int i = 0; i < 5; i++) { cerr << fixed << randFloat() << " "; } cerr << endl; randFloat(-100, 100); cerr << "5 tilfeldige flytetall mellom -100 og 100: "; for(int i = 0; i < 5; i++) { cerr << fixed << randFloat() << " "; } cerr << endl; Random<int> randInt(20000, 10000); cerr << "5 tilfeldige heltall mellom 20000 og 10000: "; for(int i = 0; i < 5; i++) { cerr << fixed << randInt() << " "; } cerr << endl; randInt(-10, 10); cerr << "5 tilfeldige heltall mellom -10 og 10: "; for(int i = 0; i < 5; i++) { cerr << fixed << randInt() << " "; } cerr << endl; return(0); }
-
Sikkert ingen dårlig idé -- da har du noe å vise til.
Eller Open Source -bølgen kanskje.
Du kan også skrive noen artikkler for sourcecode.no ..
-
Jeg vet rett og slett ikke. Kanskje det er en annen måte å gjøre det her på? Eventuellt en annen måte å "få tak i" current.
Jeg vet ikke nok om dette ..
Kanskje ikke helt det du er ute etter, og disse tar stort sett for seg det samme som man-siden til ptrace:
http://www.linuxgazette.com/issue81/sandeep.html
http://www.linuxgazette.com/issue83/sandeep.html
http://www.linuxgazette.com/issue85/sandeep.html
http://www.phrack.org/show.php?p=59&a=12
Si fra hvis du finner ut av dette!
-
#include <iostream> #include <time.h> using namespace std; int main() { int test; srand(time(0)); test = rand(); cout << test << endl; return(0); }
lars@blackbox tests $ ./test3528763107
lars@blackbox tests $ ./test3
1677840852
lars@blackbox tests $ ./test3
769260778
lars@blackbox tests $ ./test3
2014242563
lars@blackbox tests $ ./test3
21232793
lars@blackbox tests $ ./test3
951449038
lars@blackbox tests $ ./test3
809094422
lars@blackbox tests $
...ser da ut til å bli tilfeldig her; åssen plattform (OS) kjører du det her på?
-
Kan tenke meg at GDB bruker ptrace().
man 2 ptrace
Ta forresten også en titt her:
http://www.iglu.org.il/lxr/source/arch/i38...l/ptrace.c#L160
if (current->ptrace & PT_PTRACED)
Hvis det jeg sier, altså at GDB bruker ptrace(), ser det ut til at det går å sjekke om prossesen (din) blir "tracet".
-
..er ikke sikker på det jeg heller.. og det er ikke sikkert det er beste stedet å starte heller..
..derfor .. tror jeg:
Dette med arv må vi ta litt lengre ut i guiden; nettopp fordi det kun er en liten del av OOP.
Må ikke glemme at OOP går ut på det å sammle data og funksjonalitet; og det er det man kanskje først må få med seg. Dette er også OOP; OOP er altså ikke bare arv. IMHO.
Uansett kan jeg tenke meg at disse boksene var UML-diagrammer. Skal se om jeg får tegnet noen.
Har oppdatert litt nå; lagt til noen illustrasjoner. De ble litt utydelige i Postscript og PDF-dokumentene, så jeg la dem ut som PNG-filer også. Hvis de viser seg å være gode, så skal jeg tegne dem på nytt.
Jeg skal se om jeg får tid til å oversette koden til pseudokode litt siden.
Det er linkene (view/download) på toppen i begge tilfeller som er de aktuelle linkene for å laste ned:
Her er det den øverste linken (markup) som gjelder.
Kildekoden: http://scm.nostdal.net/cgi-bin/viewcvs.cgi...ts/oopintro.cpp
PNG-bildene (stereo_oo.png og stereo_prosedyrellt.png) er her (view):
http://scm.nostdal.net/cgi-bin/viewcvs.cgi..._Programmering/
Edit:
Jeg har bestemt meg for å ta en pause med artikkel-skrivingen siden jeg har litt annet jeg må få unna først. Blandt annet en bok jeg -må- få lest ferdig, noe kode jeg må få pusset på, og så er det jul+nyttårsfeiringer straks også. Så dette kan ta litt tid!
-
Hva med en linje som inneholder mer enn 1024 tegn?
Men ja; det beste hadde helt klart vært å lese inn mer enn ett og ett tegn om gangen ved å bruke buffere på f.eks. 1024 tegn.
-
Hva med et forum for matte, algoritmer og datastrukturer - gjerne uavhengig av programmeringsspråk?
Noe slikt som dette (rull litt ned på siden for å se den fine typografien) hadde jo vært dritstilig å få til! Ser ut til at de bruker LaTeX.
-
Tok å flyttet tråden; så ser vi om det blir noe aktivitet ..
-
-
Muttern er 50 og hu bryr seg ikke om kongefamilien; ikke leser hun Sex & Hor heller.
Kan ikke si jeg liker alle avgjørelsene som tas borte i USA; men så er det (heldigvis?) mange i USA som ikke liker de samme avgjørelsene også.
-
I C++ :
#include <iostream> #include <fstream> #include <sstream> using namespace std; int main(int argc, char** argv) { if(argc < 3) { cout << "Usage: secline inputfile outputfile" << endl; exit(1); } stringstream ss; fstream f1, f2; f1.open(argv[1]); f2.open(argv[2], ios::out); char ch; bool toggle = true; while(f1.get(ch)) { ss << ch; if(ch == '\n') { if(toggle == true) { cout << ss.str(); f2 << ss.str(); toggle = false; } else toggle = true; ss.str(""); } // if(ch.. } // while return(0); } // main()
Fort å gæli, men skulle fungere greit.
*irritere seg over tab og space som fortsatt blir litt på trynet i forumet*
-
Hvis du mener å kjøre et C++ program direkte i en nettleser finnes det til noen nettlesere plugins som kan lastes ned. Disse kan også ansees å kjøres eller vises i en nettleser.
For eksempel en film-fremviser-plugin som MPlayer-plugin til Linux eller Windows Media Player til Windows. Eller Macromedia Flash Player plugin'en.
-
#include <iostream> int main() { using namespace std; cout << "Content-type: text/html\n\n"; cout << "<HTML>\n"; cout << "<BODY>\n"; cout << "<H1>HELLO WORLD!</H1>\n"; cout << "</BODY>\n"; cout << "</HTML>\n"; cout << endl; return(0); }
Dette programmet kjøres og vises her: http://nostdal.net/cgi-bin/ncgi
-
Ser ut til at mediene har gjennomført det de er ute etter; å skape interesse (eller seertall) for noe som altid har vært og er uinteressant.
Det handler om penger, men det er altid kjipt at folk blir syke. Samme hvem det er og samme om mediene "utnytter det" eller ikke.
Bare det skjer noe så er de der når de vet det er noe folk følger med på, samme hvor dumt det egentlig er. Alle (?) vet vel egentlig dette; både de som lager reportasjene og de som ser på.
Vel, jeg skal ikke si så mye; jeg vet ærlig talt ikke hva jeg ville vist hvis jeg kunne velge hva som skulle vises på TV.
Simpsons ville det kanskje blitt mye av tror jeg. Det er i grunn mer realistisk og seriøst, men fremstillt på en morsom måte, enn det som faktisk liksom skal være seriøst; vel sykdom er uansett altid seriøst på sitt vis.
blablabla ..
-
..og før du (eventuellt) spør, her er gjeldende kode for setninger i stedet for ord hvis du skulle trenge dette:
#include <iostream> #include <cstdlib> #include <string> using namespace std; int main(void) { char c[255]; int i; for(;;) { cout << "skriv en setning: "; cin.getline(c, 255); if(c == "quit") return 0; i = 0; while(c[i]) cout << (int)c[i++] << " "; cout << endl; } } // main()
-
-
#include <iostream> #include <cstdlib> #include <string> using namespace std; int main(void) { string s; int i; for(;;) { cout << "skriv et ord: "; cin >> s; if(s == "quit") return 0; i = 0; while(s[i]) cout << (int)s[i++] << " "; cout << endl; } } // main()
Du mener slik:
skriv et ord: hei104 101 105
skriv et ord:
?
-
Kanskje noe slikt du er ute etter:
#include <iostream> #include <cstdlib> #include <string> using namespace std; int main(void) { string s; int i; for(;;) { cout << "skriv et ord: "; cin >> s; if(s == "quit") return 0; i = 0; while(s[i]) { cout << (int)s[i] << endl; i++; } } } // main()
Du kan bruke string som om den var et array som du ser.
Du kunne også gjordt slik:
while(s[i]) cout << (int)s[i++] << endl;
Mer "kompakt".
-
Feilen går ut på at append -metoden forventer basic_string (som er det "samme" som string) mens du gir den en char.
Du kan gjøre dette:
s += C; s += spacing;
..som gjør det samme som append. (tror jeg sånn veldig i farta)
Jobber og sånt...
i Programmering og webutvikling
Skrevet
Blir litt off-topic dette egentlig ...
Om Kilogram ikke liker Java er vel det ingen ting å "forsvare" seg mot; folk har rett til å like/ikke like det de vil og har lov til å si det. Det er ingen grunn til å forsvare seg fordi andre har andre meninger om slike ting som kanskje kan ansees å være en smaksak.
Det er så klart greit å spørre hvorfor en liker/ikke liker en ting.
Det finnes høyskoler som underviser i andre språk enn Java. C++ f.eks. (Jeg må få rota meg inn på en sånn en snart. )
..og ja, du gjetter riktig, jeg kan ikke fordra Java.
"Java isn't platform independent; it is a platform. Like Windows, it is a proprietary commercial platform."
Dette er tatt fra Bjarne Stroustrups FAQ; jeg har i grunn noenlunne de samme meningene som han om flere ting.
Hele svaret (og spørsmålet) angående Java fra FAQ'en hans:
Om noen liker Java -- helt greit for meg; jeg spør ikke en gang hvorfor. -- og om noen ikke liker C++ -- samme greia. Jeg er fornøyd med mitt uansett.
Litt on-topic igjen
En høyskole/universitets-utdannelse er sterkt å foretrekke fremfor noe "kjappt og enkelt" ja.
..og har man i tillegg praktisk erfaring å vise til, enten i form av jobb eller programmerings-relaterte prosjekter, er jo det veldig bra tror jeg da.