Frage:
Kann man davon ausgehen, daß man mit read genau die
Anzahl von Zeichen bekommen, die der andere Prozess mit
write geschrieben hat?
Wenn das nämlich der Fall ist, wird die Implementierung
wesentlich einfacher!
Gruß
Harry
> Ich bin gerade eine Client/Server-Aplikation an schreiben.
> Die Verbindung läuft über Domain-Sockets ab.
>
> Frage:
> Kann man davon ausgehen, daß man mit read genau die
> Anzahl von Zeichen bekommen, die der andere Prozess mit
> write geschrieben hat?
Diese Frage ist in dclc off-topic. Daher X-Post und FollowUp nach dcoup.
Alles Gute, Claudio.
Harry Grass wrote:
> Ich bin gerade eine Client/Server-Aplikation an schreiben.
> Die Verbindung läuft über Domain-Sockets ab.
>
> Frage:
> Kann man davon ausgehen, daß man mit read genau die
> Anzahl von Zeichen bekommen, die der andere Prozess mit
> write geschrieben hat?
Ich dachte, bei sockets arbeitet man mit send() und recv().
Bei den beiden Funktionen ist obige Aussage korrekt.
Lemmi
--
mailto: d...@18xx.de
homepage: http://www.18xx.de
> Harry Grass wrote:
>> Ich bin gerade eine Client/Server-Aplikation an schreiben.
>> Die Verbindung läuft über Domain-Sockets ab.
>>
>> Frage:
>> Kann man davon ausgehen, daß man mit read genau die
>> Anzahl von Zeichen bekommen, die der andere Prozess mit
>> write geschrieben hat?
>
> Ich dachte, bei sockets arbeitet man mit send() und recv().
> Bei den beiden Funktionen ist obige Aussage korrekt.
Warum äußerst Du Deinen Verdacht nicht in dcoup, wohin ich schon ein
X-Post gesetzt hatte? Dort wäre Deine Antwort on-topic gewesen, hier ist
sie es aber nicht.
Verständnislos, Claudio.
Das ist hier OffTopic, hier geht's nur um ANSI/ISO/K&R-C und diese
kennen keine Sockets. Frag am besten nochmal in
de.comp.os.unix.programming
> Frage:
> Kann man davon ausgehen, daß man mit read genau die
> Anzahl von Zeichen bekommen, die der andere Prozess mit
> write geschrieben hat?
>
AFAIK nein.
> Wenn das nämlich der Fall ist, wird die Implementierung
> wesentlich einfacher!
Tut mir Leid, dich enttaeuschen zu muessen ;)
[X'post & F'up2 de.comp.os.unix.programming]
Gruesse,
awiese
--
Drive defensively. Buy a tank.
Claudio Carobolante wrote:
> Dirk Clemens schrieb:
>>Ich dachte, bei sockets arbeitet man mit send() und recv().
>>Bei den beiden Funktionen ist obige Aussage korrekt.
>
> Warum äußerst Du Deinen Verdacht nicht in dcoup, wohin ich schon ein
> X-Post gesetzt hatte? Dort wäre Deine Antwort on-topic gewesen, hier ist
> sie es aber nicht.
>
3 Gründe:
1. Ich lese offline und habe de.comp.os.unix.programming nicht abonniert,
wollte aber trotzdem antworten.
2. Ich habe nicht auf dein Posting reagiert, sondern auf das ursprüngliche.
3. Ich habe keine Verdacht geäußert, sondern nur eine rhetorische Aussage
gemacht.
> Verständnislos, Claudio.
Verständnislos, Lemmi.
Claudio Carobolante wrote:
> Dirk Clemens schrieb:
>
> Warum äußerst Du Deinen Verdacht nicht in dcoup, wohin ich schon ein
> X-Post gesetzt hatte? Dort wäre Deine Antwort on-topic gewesen, hier ist
> sie es aber nicht.
Und noch neinen Grund: Ich habe eine Windows-Antwort gegeben, die in dcoup
noch mehr OT ist als hier !!
> Claudio Carobolante wrote:
>> Warum äußerst Du Deinen Verdacht nicht in dcoup, wohin ich schon ein
>> X-Post gesetzt hatte? Dort wäre Deine Antwort on-topic gewesen, hier ist
>> sie es aber nicht.
> Und noch neinen Grund: Ich habe eine Windows-Antwort gegeben, die in dcoup
> noch mehr OT ist als hier !!
Du hast eine 4.2BSD-Antwort gegeben. (Und wird bald POSIX)
man 2 send:
...
CONFORMING TO
4.4BSD, SVr4, POSIX 1003.1g draft (these function calls
appeared in 4.2BSD).
...
Gruß, Bodo
Bodo Thiesen wrote:
> Du hast eine 4.2BSD-Antwort gegeben. (Und wird bald POSIX)
>
> man 2 send:
> ...
> CONFORMING TO
> 4.4BSD, SVr4, POSIX 1003.1g draft (these function calls
> appeared in 4.2BSD).
> ...
>
> Gruß, Bodo
>
Ich habe eine Windows-Antwort gegeben. Aus der MSDN Doku:
------------------- snip ----------------------
send
The Windows Sockets send function sends data on a connected socket.
int send (
SOCKET s,
const char FAR * buf,
int len,
int flags
);
....
QuickInfo
Windows NT: Yes
Windows: Yes
Windows CE: Use version 1.0 and later.
Header: Declared in winsock2.h.
Import Library: Link with ws2_32.lib.
------------------- snip ----------------------
Mag ja sein, dass sie auch für andere System ,zufällig' gilt. ;-)
Dirk
> Ich habe eine Windows-Antwort gegeben. Aus der MSDN Doku:
> ------------------- snip ----------------------
> send
> The Windows Sockets send function sends data on a connected socket.
>
> int send (
> SOCKET s,
> const char FAR * buf,
> int len,
> int flags
> );
>
> ....
>
> QuickInfo
> Windows NT: Yes
> Windows: Yes
> Windows CE: Use version 1.0 and later.
> Header: Declared in winsock2.h.
> Import Library: Link with ws2_32.lib.
> ------------------- snip ----------------------
>
> Mag ja sein, dass sie auch für andere System ,zufällig' gilt. ;-)
Es ist umgekehrt: Diese Funktionen sind vor langer Zeit
unter Unix entstanden.
Auch C ist unter/wegen Unix entstanden.
Unix ist der Vater aller bedeutenden BS, z.B. auch von DOS.
Man hat nur bei den Abklatschsystemen kramphaft irgendwelche
subtilen Unterschiede (unnötig) eingebaut, damit sich möglichst
viele Portabilitätsprobleme ergeben.
--
Mit freundlichen Grüßen
Helmut Schellong po...@schellong.de po...@schellong.com
www.schellong.de www.schellong.biz sche...@t-online.de
http://www.wikiservice.at/dse/wiki.cgi?FreeBSD
> Bodo Thiesen wrote:
>> Du hast eine 4.2BSD-Antwort gegeben. (Und wird bald POSIX)
> Ich habe eine Windows-Antwort gegeben. Aus der MSDN Doku:
Teil aus Winzigweich's-Unsinns-Doku zu send:
> int send (
> SOCKET s,
> const char FAR * buf,
> int len,
> int flags
> );
Erneut man 2 send:
int send(int s, const void *msg, size_t len, int flags);
Sieht doch verdächtig ähnlich aus, oder?
Setzten wir mal "#define SOCKET int" und für Linux "#define FAR /**/"
vorraus.
Abgesehen davon hat Helmut ja auch schon eine Antwort
<3E20A849...@t-online.de> gegeben, die ich hiermit im vollem Umfang
unterstütze.
Gruß, Bodo
Helmut Schellong wrote: (+ und Bodo schrieb ähnliches)
> Dirk Clemens wrote:
>> Mag ja sein, dass sie auch für andere System ,zufällig' gilt. ;-)
>
>
> Es ist umgekehrt: Diese Funktionen sind vor langer Zeit
> unter Unix entstanden.
> Auch C ist unter/wegen Unix entstanden.
> Unix ist der Vater aller bedeutenden BS, z.B. auch von DOS.
> Man hat nur bei den Abklatschsystemen kramphaft irgendwelche
> subtilen Unterschiede (unnötig) eingebaut, damit sich möglichst
> viele Portabilitätsprobleme ergeben.
Warum habe ich wohl den Smiley gesetzt ?
Ich habe in C unter Unix erstmals 1984 oder 1985 programmiert.
Da gab es Win nich gar nicht. Und mitlerweile habe ich meine eigene
Socketklasse, die Systemspezifika von Linux und Windows abschottet und
sogar automatische Thread-Unterstützung bietet.
Will sagen: Habe schon unter beiden Systemen sockets programmiert.
Ich wollte nur hinterfragen, woher Claudio eigentlich weiß, dass Harry (der
mit dem Ursprungsproblem) unter Unix programmiert und nicht unter Windows.
Tatsächlich kann mir keiner wiederlegen, dass ich damals eine
Windows-Antwort gegeben habe, die zufällig auch unter diversen Unix
Derivaten gilt. Es geht hier also nicht um die historische Reihenfolge,
sondern um meine Gedanken.
BTW:
Bei Portabilitätsproblemen arbeitet M$ ja optimal für sich:
Einserseits bietet es die Standardroutienen der Unix-Welt nahezu identisch
an, damit Unix-Programme sich leicht an Win anpassen lassen. Andererseits
bieten und werben sie (für) eine andere Schnittstelle (WSA), damit Win
Programme nicht mehr für die Unix-Welt angepasst werden können. Ähnliches
gilt für die Dateibehandlung ( CreateFile() soll fopen() ersetzen ) und
andere Dinge.
Lemmi
Zitat OP:
| Ich bin gerade eine Client/Server-Aplikation an schreiben.
| Die Verbindung läuft über Domain-Sockets ab.
Gibt es unter Windows auch Domain-Sockets? Windowsprogrammierung ist
nicht mein Spezialgebiet. Google lieferte zum Thema Domain-Socket
ausnahmslos UNIX-Domain-Sockets. Eine Suche nach "Windows Domain-Socket"
blieb gänzlich erfolglos. Daher die Annahme, der OP programmiere unter
einem UNIX-Devirat.
> Tatsächlich kann mir keiner wiederlegen, dass ich damals eine
> Windows-Antwort gegeben habe, die zufällig auch unter diversen Unix
> Derivaten gilt. Es geht hier also nicht um die historische Reihenfolge,
> sondern um meine Gedanken.
Das habe ich auch nicht vor. Vielmehr hättest Du zeigen sollen, warum Du
meinst, hier sei das richtige Forum für Deine Äußerungen. Nicht das etwas
weniger Falsche, sondern das Richtige. Eine Antwort hier zu geben, bloss
weil Du das vermeindlich richtige Forum nicht liest, finde ich voll
daneben. Wenn Du davon überzeugt bist, der OP programmiere unter Windows,
warum hast Du ihn dann nicht auf diese Gruppe verwiesen, oder zumindest
ein Follow-Up dorthin gesetzt?
Bis dann, Claudio.
> Helmut Schellong wrote: (+ und Bodo schrieb ähnliches)
>
> > Unix ist der Vater aller bedeutenden BS, z.B. auch von DOS.
Der Vater von DOS ist CP/M.
> Ich habe in C unter Unix erstmals 1984 oder 1985 programmiert.
Da kann ich noch 5 Jahre mehr bieten :-)
Gruß. Claus
Und das Vorbild von CP/M?
>>Ich habe in C unter Unix erstmals 1984 oder 1985 programmiert.
>
>
> Da kann ich noch 5 Jahre mehr bieten :-)
Unix kam 1969.
CP/M IMO ungefähr 10 Jahre später.
Beispiel:
Unix-Pfadnamen: /aa/./bb/../../ccc/dddd
DOS-Pfadnamen: \aa\.\bb\..\..\ccc\dddd
mit gleicher Semantik.
Hat nicht Bill mal sowas in der Art von '... und auch DOS wird eine
Untermenge von UNIX sein/ist eine Untermenge von UNIX ...' gesagt?
>> Ich habe in C unter Unix erstmals 1984 oder 1985 programmiert.
>
> Da kann ich noch 5 Jahre mehr bieten :-)
>
*neidischguck*
Gruesse,
awiese
--
Stellen sich den Kampfhund zur Seite / Werten
sich auf mit seinem Zahn / Verstecken krampfhaft
ihre Panik / Rassischer Verfolgungswahn
-- Herbert Groenemeyer / "Die Haerte"
> Claus Reibenstein <c.reib...@pop-hannover.de> dicebat:
>
> > Der Vater von DOS ist CP/M.
>
> Hat nicht Bill mal sowas in der Art von '... und auch DOS wird eine
> Untermenge von UNIX sein/ist eine Untermenge von UNIX ...' gesagt?
Billyboy hat auch mal gesagt, dass 640kB Arbeitsspeicher für alle Zeiten
reichen würden.
> > > Ich habe in C unter Unix erstmals 1984 oder 1985 programmiert.
> >
> > Da kann ich noch 5 Jahre mehr bieten :-)
>
> *neidischguck*
:-)
Gruß. Claus
Eher nicht, auch wenn überall ein bischen Unix drin ist.
>> Der Vater von DOS ist CP/M.
>
>Und das Vorbild von CP/M?
RT11 bzw OS/8 von DEC.
>Unix kam 1969.
>CP/M IMO ungefähr 10 Jahre später.
Mitte der Siebziger. OS/8 dürfte Mitte der sechziger gewesen sein.
>Beispiel:
>Unix-Pfadnamen: /aa/./bb/../../ccc/dddd
>DOS-Pfadnamen: \aa\.\bb\..\..\ccc\dddd
RT11: Gar keine Pfadnamen. Genau wie MSDOS 1.0 und CP/M.
Der Vater oder eher Halbbruder von NT heißt übrigens VMS, und das
ist wieder ein Nachfolger von RSX, einem anderen PDP-11 Betriebssystem.
Nähere Informationen lassen sich durch googeln nach "Gordon Bell"
finden.
Vieleicht sollte man das aber in einer geeigneteren Gruppe diskutieren.
Heiko
> Andreas Wiese schrieb:
>> Claus Reibenstein <c.reib...@pop-hannover.de> dicebat:
>>> Der Vater von DOS ist CP/M.
>> Hat nicht Bill mal sowas in der Art von '... und auch DOS wird eine
>> Untermenge von UNIX sein/ist eine Untermenge von UNIX ...' gesagt?
> Billyboy hat auch mal gesagt, dass 640kB Arbeitsspeicher für alle Zeiten
> reichen würden.
Und IBM hatte mal gesagt, daß es weltweit einen Bedarf an 2 (in Worten:
zwei) Computern gibt. Hat zwar mit diesem Thread nichts zu tun, aber so
haben wir die wichtigste (TM) Aussage des vergangenen Jahrhunderts hier
nochmal protokolliert :-)
Gruß, Bodo
Waren das nicht 5? Das wäre doch schon eine genauere Prognose gewesen. ;-)
Jirka
> Beispiel:
> Unix-Pfadnamen: /aa/./bb/../../ccc/dddd
> DOS-Pfadnamen: \aa\.\bb\..\..\ccc\dddd
> mit gleicher Semantik.
Du weißt hoffentlich, daß eigentlich nur COMMAND.COM und EXPLORER.EXE ein
Problem mit Backslashs hat? Letztlich kannst Du auch unter DOS/Windows
einen Befehl wie
datei=fopen("c:/command.com","rb");
Benutzen, um "c:\\command.com" zu öffnen :-)
Es ist auch explorer.exe, welches ein Problem mit .htaccess hat.
Gruß, Bodo
Das ist doch compilerspezifisch.
fopen() ist eine Libfunktion, die mit dem Compiler geliefert werden.
> Bodo Thiesen wrote:
>> Helmut Schellong schrieb:
>>>Beispiel:
>>>Unix-Pfadnamen: /aa/./bb/../../ccc/dddd
>>>DOS-Pfadnamen: \aa\.\bb\..\..\ccc\dddd
>>>mit gleicher Semantik.
>> Du weißt hoffentlich, daß eigentlich nur COMMAND.COM und EXPLORER.EXE ein
>> Problem mit Backslashs hat? Letztlich kannst Du auch unter DOS/Windows
>> einen Befehl wie
>>
>> datei=fopen("c:/command.com","rb");
>>
>> Benutzen, um "c:\\command.com" zu öffnen :-)
> Das ist doch compilerspezifisch.
> fopen() ist eine Libfunktion, die mit dem Compiler geliefert werden.
<zizat>
Daß Dateinamen und Suchwege mit umgekehren Schrägstrichen voneinander
getrennt werden müssen, ist eine reine Konvention von COMMAND.COM.
Innerhalb eines Programms sind folgende Beispiele hundertprozentig
äquivalent:
Assign(F,'C:\TP60\DOS50\FUNCS\DEMO.@@@');
Assign(F,'C:/TP60/DOS50/FUNCS/DEMO.@@@');
f = fopen("C:\\TP60\\DOS50\\FUNCS\\DEMO.@@@","r+b");
f = fopen("C:/TP60/DOS50/FUNCS/DEMO.@@@","r+b");
</zizat>
[Quelle: Arne Schäpers - DOS 5 für Programmierer - die endgültige
Referenz], ein damals wirklich gutes Buch, heute leider veraltet.
Gruß, Bodo
PS: x-post+fup2 de.comp.os.msdos, weil es hier (de.comp.lang.c) anfängt,
hoffnungslos OffTopic zu werden :-)
Claus Reibenstein wrote:
> Dirk Clemens schrieb:
>>Ich habe in C unter Unix erstmals 1984 oder 1985 programmiert.
> Da kann ich noch 5 Jahre mehr bieten :-)
Irgendwie würde mich schon mal die Alterstruktur dieser Gruppe interessieren.
Dirk
> Irgendwie würde mich schon mal die Alterstruktur dieser Gruppe interessieren.
47
Gruß. Claus
> Irgendwie würde mich schon mal die Alterstruktur dieser Gruppe
> interessieren.
28
Jirka
Ich bin 35.
Gruß Harry
> Irgendwie würde mich schon mal die Alterstruktur dieser Gruppe
> interessieren.
Hey, noch habe ich Chancen, der Jüngste zu sein: 22 :-)
Gruß, Bodo
Das müssen wir aber noch genau ausknobeln ;O) seit November bin ich auch 22.
Gruss,
Andreas
Bin 37 Jahre alt.
Dirk Clemens wrote:
> Irgendwie würde mich schon mal die Alterstruktur dieser Gruppe
> interessieren.
>
> Dirk
Mein Alter habe ich dummerweise unterschlagen: 39
Da habe wir also bis jetzt: 22, 22, 28, 35, 39, 47.
Schnitt 32. ( == aufgerundeter Median ! ;-)
Ob das repräsentativ ist ?
ich glaube eher nicht, wenn ich an die teilweisen hierbei Diskussionen
denke. Da ist doch wohl eher die ,ungestüme Jugend' am Werk ;-)
Lemmi
49
44
Erich
--
EFEU is great (development tools, C libraries, interpreter language, ...).
Get the open source from http://efeu.cybertec.at now.
> Dirk Clemens <d...@18xx.de> wrote:
>
> > Mein Alter habe ich dummerweise unterschlagen: 39
> >
> > Da habe wir also bis jetzt: 22, 22, 28, 35, 39, 47.
> > Schnitt 32. ( == aufgerundeter Median ! ;-)
>
> 44
Offensichtlich bin ich der Älteste hier, dicht gefolgt von Dir. Bis
jetzt jedenfalls :-)
Gruß. Claus
> "Erich Frühstück" schrieb:
> >Dirk Clemens wrote:
> >
> >>Mein Alter habe ich dummerweise unterschlagen: 39
> >>
> >>Da habe wir also bis jetzt: 22, 22, 28, 35, 39, 47.
> >>Schnitt 32. ( == aufgerundeter Median ! ;-)
> >
> >44
>
> Offensichtlich bin ich der Älteste hier,
Nur, wenn Du Helmut Schellong nicht mitzählst. :-)
>49
>
>--
>Mit freundlichen Grüßen
>Helmut Schellong
Jirka
Irrtum - weil er mich im Killfile hat.
--
Mit freundlichen Grüßen
Er hat mich schon ewig im Killfile.
--
Mit freundlichen Grüßen
Mist, August :-@%$#
Gruß, Bodo
> Claus Reibenstein wrote:
>
> > Offensichtlich bin ich der Älteste hier,
>
> Nur, wenn Du Helmut Schellong nicht mitzählst. :-)
>
> >49
Den kann ich nicht mitzählen. Den sehe ich nicht.
Gruß. Claus
>
>
> Dirk Clemens wrote:
>> Irgendwie würde mich schon mal die Alterstruktur dieser Gruppe
>> interessieren.
>>
>> Dirk
>
> Mein Alter habe ich dummerweise unterschlagen: 39
>
> Da habe wir also bis jetzt: 22, 22, 28, 35, 39, 47.
> Schnitt 32. ( == aufgerundeter Median ! ;-)
>
> Ob das repräsentativ ist ?
>
> ich glaube eher nicht, wenn ich an die teilweisen hierbei Diskussionen
> denke. Da ist doch wohl eher die ,ungestüme Jugend' am Werk ;-)
Alter schuetzt bekanntlich vor Dummheit nicht! ;-)
Ich trage jedenfalls nicht weiter zur Schnittveraenderung bei.
Andersherum waere vielleicht noch interessant wie lange die Leute
hier schon im Geschaefft (also in C programmieren) sind.
~11 Jahre.
--
Z (Zoran....@daimlerchrysler.com)
"LISP is worth learning for the profound enlightenment experience
you will have when you finally get it; that experience will make you
a better programmer for the rest of your days." -- Eric S. Raymond
> Andersherum waere vielleicht noch interessant wie lange die Leute
> hier schon im Geschaefft (also in C programmieren) sind.
Etwa 20 Jahre.
Gruß. Claus
Sacht ich doch.
Also hab ich wieder mal Recht gehabt. :x)
--
Mit freundlichen Grüßen
15..20; 15+5_mit_wenig_Praxis.
Zoran Cutura wrote:
> Andersherum waere vielleicht noch interessant wie lange die Leute
> hier schon im Geschaefft (also in C programmieren) sind.
>
> ~11 Jahre.
seit Beginn meinem Studiums 1983, also 20 Jahre
ca 16 Jahre.
> Andersherum waere vielleicht noch interessant wie lange die Leute
> hier schon im Geschaefft (also in C programmieren) sind.
Betonung auf C? Dann etwa 5 Jahre [Greenhorn ...]
Gruß, Bodo
>Irgendwie würde mich schon mal die Alterstruktur dieser Gruppe interessieren.
Mich dagegen wuerden die Schuhgroessen und Haarlaengen der dclc-Teil-
nehmer interessieren - muss doch irgendwie zu schaffen sein, diese
Gruppe mit Themen-fremdem Zeug kaputtzulabern...
F'Up2.
b.
Was hat den das mit "read write" zu tun????
Ihr seid doch völligst OT!!!!
sowas???
Harry