<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Einen Zeiger an die main-Funktion übergeben]]></title><description><![CDATA[<p>Geht das irgendwie? Der Hintergrund ist der folgende:</p>
<p>Ich starte innerhalb eines Programms einen Daemon D. Parallel wird ein anderes Programm P gestartet, welches die Dienste des Daemons benutzt. Nun muss dieses andere Programm P wissen, ob der Daemon D schon gestartet wurde. Dafür wollte ich dem Daemon D eine Adresse einer boolischen Variable übergeben, damit er diese nach dem Start auf true setzt. Diese Variable wird dann von dem P überprüft, und wenn sie true ist, macht P sein Zeug.</p>
<p>Wie könnte man sowas realisieren? Die main-Funktion interpretiert ja ihre Argumente als array von Zeichenfolgen argv[]. Ich habe mir sowas überlegt:</p>
<p>bool a = false;<br />
bool* aPointer = &amp;a;</p>
<p>char buffer[11];<br />
sprintf(buffer, &quot;%p&quot;, aPointer);</p>
<p>und dann den buffer übergeben. Aber wie hole ich denn die Adresse als zeigertyp aus dem buffer raus???</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184436/einen-zeiger-an-die-main-funktion-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 17:10:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184436.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Jun 2007 09:30:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 09:30:00 GMT]]></title><description><![CDATA[<p>Geht das irgendwie? Der Hintergrund ist der folgende:</p>
<p>Ich starte innerhalb eines Programms einen Daemon D. Parallel wird ein anderes Programm P gestartet, welches die Dienste des Daemons benutzt. Nun muss dieses andere Programm P wissen, ob der Daemon D schon gestartet wurde. Dafür wollte ich dem Daemon D eine Adresse einer boolischen Variable übergeben, damit er diese nach dem Start auf true setzt. Diese Variable wird dann von dem P überprüft, und wenn sie true ist, macht P sein Zeug.</p>
<p>Wie könnte man sowas realisieren? Die main-Funktion interpretiert ja ihre Argumente als array von Zeichenfolgen argv[]. Ich habe mir sowas überlegt:</p>
<p>bool a = false;<br />
bool* aPointer = &amp;a;</p>
<p>char buffer[11];<br />
sprintf(buffer, &quot;%p&quot;, aPointer);</p>
<p>und dann den buffer übergeben. Aber wie hole ich denn die Adresse als zeigertyp aus dem buffer raus???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306377</guid><dc:creator><![CDATA[Ewgenijkkg]]></dc:creator><pubDate>Fri, 15 Jun 2007 09:30:00 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 09:37:00 GMT]]></title><description><![CDATA[<p>sprintf(buffer, &quot;<strong>%x</strong>&quot;, aPointer);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306379</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 15 Jun 2007 09:37:00 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 09:53:07 GMT]]></title><description><![CDATA[<p>Du kannst nicht einfach so nen Puffer über die main-Parameter an einen anderen Prozess übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306388</guid><dc:creator><![CDATA[proggingmania]]></dc:creator><pubDate>Fri, 15 Jun 2007 09:53:07 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 09:55:26 GMT]]></title><description><![CDATA[<p>Wie wärs statt dessen, wenn P von D gestartet würde ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306391</guid><dc:creator><![CDATA[proggingmania]]></dc:creator><pubDate>Fri, 15 Jun 2007 09:55:26 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 10:01:51 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>sprintf(buffer, &quot;<strong>%x</strong>&quot;, aPointer);</p>
</blockquote>
<p>Wieso geht denn &quot;%p&quot; nicht? Ist doch ein Zeigerformat:</p>
<p><a href="http://www.cplusplus.com/reference/clibrary/cstdio/printf.html" rel="nofollow">http://www.cplusplus.com/reference/clibrary/cstdio/printf.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306395</guid><dc:creator><![CDATA[Ewgenijkkg]]></dc:creator><pubDate>Fri, 15 Jun 2007 10:01:51 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 10:04:26 GMT]]></title><description><![CDATA[<p>proggingmania schrieb:</p>
<blockquote>
<p>Wie wärs statt dessen, wenn P von D gestartet würde ?</p>
</blockquote>
<p>Nee, das entspricht nicht dem Sinn der Anwendung. Es sind zwei verschiedene Programme P und D und ich schreibe eine testsuite, die das Zusammenspiel automatisch testen soll. Also müssen die getrennt gestartet werden, sonst enspricht das nicht der Realität.</p>
<p>Es muss doch irgendwie gehen. Ich bin ja wohl nicht der Einzige, der sowas bewerkstelligen möchte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306398</guid><dc:creator><![CDATA[Ewgenijkkg]]></dc:creator><pubDate>Fri, 15 Jun 2007 10:04:26 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 10:05:25 GMT]]></title><description><![CDATA[<p>Die adressen des einen Prozesses sind innerhalb des anderen nicht gültig.</p>
<p>Du könntest es über eine named pipe oder sowas machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306399</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Fri, 15 Jun 2007 10:05:25 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 10:16:08 GMT]]></title><description><![CDATA[<p>P schickt eine Nachricht an D und wartet bis TIMEOUT abgelaufen ist.<br />
D empfängt Nachricht von P und sendet eine Antwort.<br />
P empfängt Nachricht, das D bereit ist ...</p>
<p>Kommunikationsmöglichkeiten sind Sockets, Pipes, Messages( z.B. PostMessage ), Umgebungsvariable etc.<br />
Je nach Anwendungsfall.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306404</guid><dc:creator><![CDATA[The Solution]]></dc:creator><pubDate>Fri, 15 Jun 2007 10:16:08 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 10:23:00 GMT]]></title><description><![CDATA[<p>The Solution schrieb:</p>
<blockquote>
<p>P schickt eine Nachricht an D und wartet bis TIMEOUT abgelaufen ist.<br />
D empfängt Nachricht von P und sendet eine Antwort.<br />
P empfängt Nachricht, das D bereit ist ...</p>
<p>Kommunikationsmöglichkeiten sind Sockets, Pipes, Messages( z.B. PostMessage ), Umgebungsvariable etc.<br />
Je nach Anwendungsfall.</p>
</blockquote>
<p>Hi, danke. Es ist mir klar, dass ich sowas durchaus bewerkstelligen kann, indem ich die Prozesse P und D soweit verändere, dass sie miteinander Nachrichten austauschen können. Geht es denn auch irgendwie, ohne in die Prozesse an sich einzugreifen, ihren Quellcode zu verändern, also auf der höheren Ebene der Aufrufe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306411</guid><dc:creator><![CDATA[Ewgenijkkg]]></dc:creator><pubDate>Fri, 15 Jun 2007 10:23:00 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 10:25:28 GMT]]></title><description><![CDATA[<p>Aber P so abändern, dass es wartet, bis eine Variable true ist ist ok, aber es so abändern, dass es wartet, bis es eine nachricht per Pipe, Socket, ... bekommt ist ein zu tiefer eingriff?</p>
<p>Im Grunde ist es doch das selbe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306413</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Fri, 15 Jun 2007 10:25:28 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 10:59:40 GMT]]></title><description><![CDATA[<p>Ewgenijkkg schrieb:</p>
<blockquote>
<p>Hi, danke. Es ist mir klar, dass ich sowas durchaus bewerkstelligen kann, indem ich die Prozesse P und D soweit verändere, dass sie miteinander Nachrichten austauschen können.</p>
</blockquote>
<p>Wieso verändern, die werden diesbezüglich von vornhereien so ausgelegt, konzipiert.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306433</guid><dc:creator><![CDATA[The Solution]]></dc:creator><pubDate>Fri, 15 Jun 2007 10:59:40 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 11:07:36 GMT]]></title><description><![CDATA[<p>Helium schrieb:</p>
<blockquote>
<p>Aber P so abändern, dass es wartet, bis eine Variable true ist ist ok, aber es so abändern, dass es wartet, bis es eine nachricht per Pipe, Socket, ... bekommt ist ein zu tiefer eingriff?</p>
<p>Im Grunde ist es doch das selbe.</p>
</blockquote>
<p>Na ja, hast auch recht:) Thanks. Aber rein aus Interesse: gelten denn die Zeiger eines Prozesses in einem anderen grundsätzlich nicht, weil die verschiedene Adressräume haben, oder gibt es irgendwelche Tricks, um damit doch zu arbeiten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306435</guid><dc:creator><![CDATA[Ewgenijkkg]]></dc:creator><pubDate>Fri, 15 Jun 2007 11:07:36 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 11:06:33 GMT]]></title><description><![CDATA[<p>Du kannst gern nen Zeiger an main übergeben, ist ja auch nur ne Zahl, die man konvertieren kann.<br />
Du kannst aber nicht viel mit dem Zeiger anfangen, weil er für diesen Prozess nicht gültig ist, das hat Helium schon geschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306437</guid><dc:creator><![CDATA[Wiederholung]]></dc:creator><pubDate>Fri, 15 Jun 2007 11:06:33 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 11:22:42 GMT]]></title><description><![CDATA[<p>Wie wärs mit einer ganz billigen Lösung uber eine Datei ?<br />
Also, D ist erst dann bereit, wenn in einer Datei ein bestimmter Wert steht( z.B. TRUE ).</p>
<p>Ansonsten:<br />
<a href="http://en.wikipedia.org/wiki/Inter-process_communication" rel="nofollow">http://en.wikipedia.org/wiki/Inter-process_communication</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306452</guid><dc:creator><![CDATA[proggingmania]]></dc:creator><pubDate>Fri, 15 Jun 2007 11:22:42 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 11:26:21 GMT]]></title><description><![CDATA[<p>Ewgenijkkg schrieb:</p>
<blockquote>
<p>Geht es denn auch irgendwie, ohne in die Prozesse an sich einzugreifen, ihren Quellcode zu verändern, also auf der höheren Ebene der Aufrufe?</p>
</blockquote>
<p>Du willst doch nicht etwa Hacken, hm ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306456</guid><dc:creator><![CDATA[tststs]]></dc:creator><pubDate>Fri, 15 Jun 2007 11:26:21 GMT</pubDate></item><item><title><![CDATA[Reply to Einen Zeiger an die main-Funktion übergeben on Fri, 15 Jun 2007 11:28:19 GMT]]></title><description><![CDATA[<p>Ewgenijkkg schrieb:</p>
<blockquote>
<p>Geht es denn auch irgendwie, ohne in die Prozesse an sich einzugreifen, ihren Quellcode zu verändern, also auf der höheren Ebene der Aufrufe?</p>
</blockquote>
<p>Guten Tag, ihren Ausweis bitte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306459</guid><dc:creator><![CDATA[*INTERNETPOLIZEI*]]></dc:creator><pubDate>Fri, 15 Jun 2007 11:28:19 GMT</pubDate></item></channel></rss>