![]() |
|
|||||||
| Newsgroup de.comp.lang.pascal Pascal, inkl. Turbo-. |
![]() |
|
|
Themen-Optionen | Ansicht |
|
#1
|
|||
|
|||
|
Hi, Ist es möglich in Freepascal auf Linux auf einen Speicherbereich zuzugreifen der als Shared Memory deklariert ist? Gibt es da eine passende Library, oder muss man das selber austüfteln bzw. eine eigene c-Lib einbinden die das erledigt? Hat jemand einen Tip wo man das nachlesen kann (Bevorzugt in deutsch)? Auf die schnelle habe ich da bisher noch nichts gefunden. Gruß Martin |
|
|
||||
|
||||
|
|
|
#2
|
|||
|
|||
|
Martin Freiberg schrieb:
> Ist es möglich in Freepascal auf Linux auf einen Speicherbereich > zuzugreifen der als Shared Memory deklariert ist? Die Unit ipc liefert dir dafür Möglichkeiten: http://www.freepascal.org/docs-html/rtl/ipc/shmctl.html Allerdings nur unter Linux. Aber erst einmal die andere Frage: Was hast du denn vor? ![]() mfg Micha -- Meine Wanderungen durch Realität und Cyberspace auf --> http://www.michael-fuchs.net <-- |
|
#3
|
|||
|
|||
|
Michael Fuchs schrieb:
> Martin Freiberg schrieb: >> Ist es möglich in Freepascal auf Linux auf einen Speicherbereich >> zuzugreifen der als Shared Memory deklariert ist? > > Die Unit ipc liefert dir dafür Möglichkeiten: > http://www.freepascal.org/docs-html/rtl/ipc/shmctl.html > Allerdings nur unter Linux. Prima, das ist genau das was ich brauche. ![]() Jetzt brauche ich nur noch die Unit, welche eine Kommunikation über ioctrl der Linux devices ermöglicht. ![]() > Aber erst einmal die andere Frage: Was hast du denn vor? ![]() Ich habe da für eine Hardwarebastelei aus MS-DOS-Zeiten ein Pascal- Programm (unter TP geschrieben), das ich nun auf Linux umsetzen will. Die Hardware wird dann über ein Kernelmodul angesteuert. Der Rest soll aber ein Pascal-Programm bleiben. OK, alles neu machen oder die Unit ports zu verwenden währe einfacher, aber es ist der Ergeiz das nicht zu tun, sondern alles richtig zu portieren. Außerdem bringt mir das ganze viel Erfahrung und ist für mich sehr Lehrreich, was die Hauptgründe dazu sind. Einfacher währe es, das ganze bleiben zu lassen, aber der Lernerfolg und Spass am Basteln bleibt dann auch aus. Der Spieltrieb im Manne. ![]() Gruß Martin |
|
#4
|
|||
|
|||
|
Hallo Martin,
Du schriebst am Fri, 02 Oct 2009 16:17:28 +0200: > Jetzt brauche ich nur noch die Unit, welche eine Kommunikation über > ioctrl der Linux devices ermöglicht. ![]() Wieso Unit? Du brauchst die _Funktion_ ioctrl (bzw. "ioctl"), und die findest Du in "BaseUnix" als function FpIOCtl (Handle: cint; Ndx: culong; Data: Pointer): cint beschrieben in RTL.pdf aus der Dokumentation zu FPC. Dazu brauchst Du noch ein paar Zusatzinformationen und -Definitionen aus der Unit "Linux", z.B. für die ioctl-Funktionscodes und Datenstrukturen. > > Aber erst einmal die andere Frage: Was hast du denn vor? ![]() > > Ich habe da für eine Hardwarebastelei aus MS-DOS-Zeiten ein Pascal- > Programm (unter TP geschrieben), das ich nun auf Linux umsetzen will. > Die Hardware wird dann über ein Kernelmodul angesteuert. Der Rest soll > aber ein Pascal-Programm bleiben. Das ist eine sehr gute Vorgehensweise. > OK, alles neu machen oder die Unit ports zu verwenden währe einfacher, ^# >-I > aber es ist der Ergeiz das nicht zu tun, sondern alles richtig zu ^h :-I > portieren. Außerdem bringt mir das ganze viel Erfahrung und ist für mich > sehr Lehrreich, was die Hauptgründe dazu sind. ^l :-( Ich hoffe ja mal aber, daß Du beim Programmieren _ein klein wenig_ sorgfältiger schreibst als in einem News-Post - auch wenn der Compiler "Rechtschreibfehler" in Schlüsselworten schnell erkennt und darauf hinweist - bei Variablennamen und "Satzzeichen" kann er das meistens nicht, und das Ergebnis ist ärgerlich. (Nix für ungut - wenn ich in Programmierergruppen lese, frage ich mich nur recht oft, wie es Leute, die pro Satz mehrere Rechtschreib-, Grammatik- und andere Fehler zustande bringen, schaffen sollen (wollen), (weitestgehend) fehlerfreie Programme zu schreiben. Oder machen die das wie ein Schmied, der das Werkstück erstmal roh in Form bringt, um es dann anhand des Gegenstückes mit schwerem Hammer (Debugger) richtig anzupassen? Naja, manche Programme schauen so aus, schon in ihrer Darstellung und Bedienung...) -- (Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem) ----------------------------------------------------------- Mit freundlichen Grüßen, S. Schicktanz ----------------------------------------------------------- |
|
#5
|
|||
|
|||
|
Sieghard Schicktanz schrieb:
> (Nix für ungut - wenn ich in Programmierergruppen lese, frage ich mich nur > recht oft, wie es Leute, die pro Satz mehrere Rechtschreib-, Grammatik- und > andere Fehler zustande bringen, schaffen sollen (wollen), (weitestgehend) > fehlerfreie Programme zu schreiben. Oder machen die das wie ein Schmied, > der das Werkstück erstmal roh in Form bringt, um es dann anhand des > Gegenstückes mit schwerem Hammer (Debugger) richtig anzupassen? Irgendwie passiert das in der Tat so. Kleines Beispiel aus einem Bewerbungsgespräch für angehende Fachinformatiker/Anwendungsentwicklung: Es gibt eine kleine Testaufgabe um zu sehen wie der Bewerber damit fertig wird, soll normalerweise in VB.NET geschrieben werden der entsprechende junge Mann konnte jedoch bisher nur PHP. Kein Problem, er kann ja weiteres dann bei der Ausbildung lernen, also Notepad++ auf und zeig mal was du kannst. Das Script ist dann schnell fertig, bei den SQL-Statements kommen dann aber gleich die Einschränkungen des Bewerbers: "Die stimmen mit Sicherheit nicht. Ich merke mir nie, wo man da Anführungszeichen setzen muss. PHP sagt mir ja immer Bescheid wenn was falsch ist." Hmmm. mfg Micha -- Meine Wanderungen durch Realität und Cyberspace auf --> http://www.michael-fuchs.net <-- |
|
#6
|
|||
|
|||
|
Sieghard Schicktanz schrieb:
Hi, > Wieso Unit? Du brauchst die _Funktion_ ioctrl (bzw. "ioctl"), und die > findest Du in "BaseUnix" als > function FpIOCtl (Handle: cint; Ndx: culong; Data: Pointer): cint Ups. Danke für den freundlichen Hinweis. Erspart mir das suchen.> Ich hoffe ja mal aber, daß Du beim Programmieren _ein klein wenig_ > sorgfältiger schreibst als in einem News-Post - auch wenn der Compiler Nun ja, das Problem besteht mit darin, das man durch die Rechtschreibprüfung schnell zu faul wird, den eigenen Text _genau_ zu überprüfen. Und wenn die Rechtschreibprüfung nichts an meckert, dann überliest man die eigenen Fehler sehr schnell. Und überliest man mal einen Fehler, dann überliest man ihn die nächsten 10 Mal wieder. > "Rechtschreibfehler" in Schlüsselworten schnell erkennt und darauf > hinweist - bei Variablennamen und "Satzzeichen" kann er das meistens > nicht, und das Ergebnis ist ärgerlich. Das erstaunt mich wiederum. Gerade da habe ich die gegenteilige Erfahrung gemacht, und dass der Compiler geradezu pingelig alles an meckert. Liegt wohl darin, das ich bevorzugt mit der "strengsten" Einstellung arbeite. ![]() Danke & Gruß Martin |
|
#7
|
|||
|
|||
|
Hallo Martin,
Du schriebst am Mon, 05 Oct 2009 18:57:37 +0200: > > findest Du in "BaseUnix" als > > function FpIOCtl (Handle: cint; Ndx: culong; Data: Pointer): cint > > Ups. Danke für den freundlichen Hinweis. Erspart mir das suchen.Gerne. > > Ich hoffe ja mal aber, daß Du beim Programmieren _ein klein wenig_ > > sorgfältiger schreibst als in einem News-Post - auch wenn der Compiler > > Nun ja, das Problem besteht mit darin, das man durch die > Rechtschreibprüfung schnell zu faul wird, den eigenen Text _genau_ zu Dann schmeiß' die mal schnell weg - die prüft Dir nur Deine schriftliche Ausdrucksweise kaputt: > überprüfen. Und wenn die Rechtschreibprüfung nichts an meckert, dann ^# _kein_ Leerzeichen > überliest man die eigenen Fehler sehr schnell. Und überliest man mal > einen Fehler, dann überliest man ihn die nächsten 10 Mal wieder. Du solltest sorgfältiger lesen lernen. Und evtl. sogar schreiben - die meisten Fehler, die man beim Schreiben macht, merkt man normalerweise schon, bevor man den Folgebuchstaben tippt... > > "Rechtschreibfehler" in Schlüsselworten schnell erkennt und darauf > > hinweist - bei Variablennamen und "Satzzeichen" kann er das meistens > > nicht, und das Ergebnis ist ärgerlich. > > Das erstaunt mich wiederum. Gerade da habe ich die gegenteilige > Erfahrung gemacht, und dass der Compiler geradezu pingelig alles an ^# _kein_ Leerzeichen, dzf. _keine_ Trennung > meckert. Liegt wohl darin, das ich bevorzugt mit der "strengsten" > Einstellung arbeite. ![]() Sicher - wenn es keine Variable mit dem falsch geschriebenen Namen gibt, damm meckert der Compiler natürlich. Wenn es aber eine Variable mit diesem Namen gibt, der aber nur durch einen Schreibfehler zustande gekommen ist, wie soll er das dann erkennen? Das hat mit der Einstellung nicht die Bohne zu tun, das geht eben nicht. Bei den Schlüsselworten geht das im wesentlichen deshalb recht zuverlässig, weil die hinreichend unterschiedlich und kontextabhängig sind, daß es kaum zu Strukturfehlern durch Verschreiben kommen kann - es kann aber sehr wohl passieren, daß man ein "BEGIN" oder "END" vergißt, und damit eine völlig andere Strutur konstruiert als beabsichtigt. Das zu finden und zu korrigieren kann recht "interessant" werden... (und zeitaufwendig;*) -- (Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem) ----------------------------------------------------------- Mit freundlichen Grüßen, S. Schicktanz ----------------------------------------------------------- |
|
#8
|
|||
|
|||
|
Sieghard Schicktanz schrieb:
>> Rechtschreibprüfung schnell zu faul wird, den eigenen Text _genau_ zu > Dann schmeiß' die mal schnell weg - die prüft Dir nur Deine schriftliche > Ausdrucksweise kaputt: Deswegen bevorzugen viele Englisch. Vieles einfacher und viel weniger regen sich über Verschreiber auf. ![]() Wirklich, ist echt so. >> überliest man die eigenen Fehler sehr schnell. Und überliest man mal >> einen Fehler, dann überliest man ihn die nächsten 10 Mal wieder. > Du solltest sorgfältiger lesen lernen. Und evtl. sogar schreiben - die > meisten Fehler, die man beim Schreiben macht, merkt man normalerweise > schon, bevor man den Folgebuchstaben tippt... Ich Arbeite hauptsächlich im Handwerk, und dadurch bin die Eile und Hektik gewohnt. Hier hat man vielfach für die selbe Aufgabe maximal die halbe Zeit zur Verfügung. Da bleibt keine Zeit mehr für übrig. >> meckert. Liegt wohl darin, das ich bevorzugt mit der "strengsten" >> Einstellung arbeite. ![]() > Sicher - wenn es keine Variable mit dem falsch geschriebenen Namen gibt, Darum soll man auch immer eindeutige Namen nehmen und nicht den Unix-Like Stil für Faule. ![]() > damm meckert der Compiler natürlich. Wenn es aber eine Variable mit diesem > Namen gibt, der aber nur durch einen Schreibfehler zustande gekommen ist, Dann hat man eine falsche Bezeichnung für die betreffenden Variablen gewählt. Gruß Martin |
|
#9
|
|||
|
|||
|
Hallo Martin,
Du schriebst am Thu, 22 Oct 2009 18:06:59 +0200: > >> Rechtschreibprüfung schnell zu faul wird, den eigenen Text _genau_ zu > > Dann schmeiß' die mal schnell weg - die prüft Dir nur Deine schriftliche > > Ausdrucksweise kaputt: > > Deswegen bevorzugen viele Englisch. Vieles einfacher und viel weniger > regen sich über Verschreiber auf. ![]() > Wirklich, ist echt so. Dann hast Du noch nie einen ernsthaften englischen Text ernsthaft gelesen. Die englische Schreibweise (die wir ja durch die neue recht Schrei Bung nun "endlich" auch "geniessen" dürfen) ohne Wortkombinationen, die Zusammengehörigkeiten unübersehbar kennzeichneten, ist für jede Menge mißverständliche oder zumindest beim schnellen Drüberlesen erstmal unverständliche Wortfolgen gut; daneben gibt es viel mehr Worte mit kontextabhängig wesentlich unterschiedlichen Bedeutungen als im Deutschen, und zudem enthält Englisch eigentlich gleich zwei Sprachen: einen Teil germanischer Abstammung und einen zweiten romanischer Herkunft. "Netterweise" haben die äquivalenten Worte aus unterschiedlicher Abstammung oft recht subtil unterschiedliche Bedeutungen. Was Du anscheinend meinst, ist das Englisch des amerikanischen "Couch Potato", der sich mit (deutlich) weniger als 200 Worten durch sein Leben brabbelt. > > Du solltest sorgfältiger lesen lernen. Und evtl. sogar schreiben - die > > meisten Fehler, die man beim Schreiben macht, merkt man normalerweise > > schon, bevor man den Folgebuchstaben tippt... > > Ich Arbeite hauptsächlich im Handwerk, und dadurch bin die Eile und > Hektik gewohnt. Hier hat man vielfach für die selbe Aufgabe maximal die Wir hatten gerade Handwerker im Haus. Kannst Du mir das mit der "Eile und Hektik" im Handwerk mal näher erläutern? (Stammt aus dem Handwerk nicht auch der Spruch "ich bin bei der Arbeit und nicht auf der Flucht", mit dem Leute gerne die "Eile und Hektik" anderer zu bremsen versuchen?) ;-> (BTW, ich habe aber nichts gegen _sorgfältiges_ Arbeiten - nur vertragen sich "Eile und Hektik" partout nicht mit Sorgfalt. Wer immer in "Eile und Hektik" ist, muß sich also den Ruf gefallen lassen, nicht sorgfältig zu arbeiten.) > > Sicher - wenn es keine Variable mit dem falsch geschriebenen Namen gibt, > > Darum soll man auch immer eindeutige Namen nehmen und nicht den > Unix-Like Stil für Faule. ![]() Das sowieso - aber auch dann lassen sich "eindeutige" (Du meinst wohl eher "deutlich unterschiedliche") Namen nicht immer durchhalten. Und zudem können Schreibfehler manchmal recht wunderliche Verbuchslungen zuwege bringen... -- (Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem) ----------------------------------------------------------- Mit freundlichen Grüßen, S. Schicktanz ----------------------------------------------------------- |
|
#10
|
|||
|
|||
|
Sieghard Schicktanz schrieb:
Hallo, So langsam ist das ganze in Bezug auf Pascal derartig OT, als das wir das verlagern sollten. EMail oder andere NG? Gruß Martin |
|
|
|
|