Schrift
[thread]2909[/thread]

Perl in C umsetzen: Umsetzen von Perl in C-Code (Seite 2)

Leser: 1


<< |< 1 2 >| >> 18 Einträge, 2 Seiten
esskar
 2004-06-10 20:58
#29272 #29272
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
naja finde ich gar nicht...
wann brauchst du es...
und für was?

bzw. wenn du weisst, was das Programm macht, müsstest du es doch in C nachprogrammieren könntest ohne von der Perl Version abzuschreiben!\n\n

<!--EDIT|esskar|1086886760-->
Gast Gast
 2004-06-10 21:34
#29273 #29273
Ich weiß was Perl Programm tut, aber ich weiß nicht wie es tut!
Zum Beispiel ich weiß daß Perl-Programm einen Key(Code) generiert aber ich weiß nicht wie er generiert wird!

Und das ist das Problem

Student
betterworld
 2004-06-10 22:44
#29274 #29274
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
[quote=esskar,10.06.2004, 12:26]für mich bedeutet linux die freie welt... :)[/quote]
Ach, wieso, es geht bestimmt auch auf SCO Unix ;)
coax
 2004-06-11 01:16
#29275 #29275
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
[quote=esskar,10.06.2004, 11:00]aufgrund des forks kann man es nur in linux-c übersetzen...[/quote]
Unter Windows wuerde man am shmget, shmread, shmwrite scheitern, denke ich.

[quote=-Student-,10.06.2004, 19:34]Ich weiß was Perl Programm tut, aber ich weiß nicht wie es tut!
Zum Beispiel ich weiß daß Perl-Programm einen Key(Code) generiert aber ich weiß nicht wie er generiert wird!

Und das ist das Problem
[/quote]
Die Ausgabe die du bekommst wenn du DATA und die ID eingibst, ist aequivalent zu der Ausgabe von den Code (wenn ID = 10):
Code: (dl )
1
2
3
4
5
6
7
8
my $id = 10;

for(my $i = 0; $i < $id; $i++) {

   my $data = sin($i+1)/($i+1) * 2047 + 2048;

   printf("%d: %s\n", $i, pack("S", $data));
}

Das Aequivalent zur der Zeile mit der pack-Anweisung ist
Code: (dl )
    printf("%d: %s\n", $i, chr($data % 256) . chr(int($data / 256)));


Grusz Christian.
,,Das perlt aber heute wieder...'' -- Dittsche
Strat
 2004-06-11 23:39
#29276 #29276
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
versuch mal, ob du mit dem output von
Code: (dl )
perlcc -c out.c dateiname

was anfangen kannst (perlcc ist aber immer noch sehr experimentell, und die chancen, dass der code danach laeuft, sind nicht besonders hoch; aber einen versuch ist es imho schon wert)\n\n

<!--EDIT|Strat|1086982805-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2004-06-12 03:10
#29277 #29277
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
In die Richtung wollte ich ja oben auch, nur dass das Perlskript nicht durchläuft (den Einwand mit _ _ XXX _ _ hab ich irgendwie nicht verstanden... fehlt dadurch was in dem Skript?).
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
coax
 2004-06-12 04:05
#29278 #29278
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
[quote=Strat,11.06.2004, 21:39]versuch mal, ob du mit dem output von
Code: (dl )
perlcc -c out.c dateiname

was anfangen kannst (perlcc ist aber immer noch sehr experimentell, und die chancen, dass der code danach laeuft, sind nicht besonders hoch; aber einen versuch ist es imho schon wert)[/quote]
Ich hab das gestern mal in C Source convertiert und kompiliert, das laeuft ansich, nur mit den Source wird man nicht viel anfangen koennen, also ich wuerde mich da kein Stueck zurecht finden.

[quote=Crian,12.06.2004, 01:10]In die Richtung wollte ich ja oben auch, nur dass das Perlskript nicht durchläuft (den Einwand mit _ _ XXX _ _ hab ich irgendwie nicht verstanden... fehlt dadurch was in dem Skript?).[/quote]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub start_log #(Dateiname)
{
my $filename = shift;
open(FH,">>".$filename) || return 0;
chmod($filename,644);
# Autoflush setzen fuer FH
my $oldfh = select(FH); $| = 1; select($oldfh);
# Lock freigeben
flock(FH,8);
# warn und die umleiten
$SIG{_ _WARN_ _} = \&log_warn;
$SIG{_ _DIE_ _} = \&log_die;
return 1;
}

hier wurde WARN und DIE verschluckt deshalb die Fehler.
,,Das perlt aber heute wieder...'' -- Dittsche
Crian
 2004-06-12 05:53
#29279 #29279
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
[quote=coax,12.06.2004, 02:05][quote=Crian,12.06.2004, 01:10]In die Richtung wollte ich ja oben auch, nur dass das Perlskript nicht durchläuft (den Einwand mit _ _ XXX _ _ hab ich irgendwie nicht verstanden... fehlt dadurch was in dem Skript?).[/quote]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub start_log #(Dateiname)
{
my $filename = shift;
open(FH,">>".$filename) || return 0;
chmod($filename,644);
# Autoflush setzen fuer FH
my $oldfh = select(FH); $| = 1; select($oldfh);
# Lock freigeben
flock(FH,8);
# warn und die umleiten
$SIG{_ _WARN_ _} = \&log_warn;
$SIG{_ _DIE_ _} = \&log_die;
return 1;
}

hier wurde WARN und DIE verschluckt deshalb die Fehler.[/quote]
Ah - danke. So etwas habe ich noch nicht gemacht, sonst hätte ich es vielleicht auch wiedererkannt.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2004-06-10 11:58.