<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title><![CDATA[ No.472 - 電装工芸日記 - 舞台照明機器の製作とか - ]]></title>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi</link>
	<description><![CDATA[ 今年は開発案件を進めたい ]]></description>
	<language>ja</language>
	<copyright>Copyright 2026</copyright>
	<lastBuildDate>Tue, 21 Apr 2026 06:51:15 +0900</lastBuildDate>
	<generator><![CDATA[ <!-- てがろぐ Version: -->Powered by <a href="https://www.nishishi.com/cgi/tegalog/" target="_top">てがろぐ</a> Ver 3.4.0 ]]></generator>
	<!-- BEGIN ENTRIES -->
	<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　共有メモリの衝突回避ですが、共有メモリの中にハンドシェイク… ]]></title>
	<description><![CDATA[ 　共有メモリの衝突回避ですが、共有メモリの中にハンドシェイク表すフラグを入れたらそれでいいんじゃないかと。<br />　そのフラグが立っていれば極々わずかな時間sleepを繰り返す処理です。<br /><br /><span class="decorationF deco-code">while(flag1 == 1)<br />{<br />　sleep(0.001);<br />}<br />flag2 = 1;<br />/* 共有メモリ処理　*/<br />flag2 = 0;</span><br /><br />　みたいなものです。<br />　別プロセスがフラグを0にすればwhileを抜けます。<br />　簡易的なモノですが、フラグを書き換えられるプロセスを一つにしておけばイイんじゃないかと。最も簡単なセマフォはこういうことですし。<br /><br />　子プロセスの停止制御も同様の考え方が使えます。<br />　動作し続けるってことは繰り返し処理です。単なる繰り返しはwhile(1)とかで無限ループすることが多いので、while(flag==1)とかにすればいい。共有メモリ上のフラグが1ならwhileでループし0になったら抜ければいいのです。抜けたら終了処理をしてプロセスを落とすと。子プロセスが完全に終わったことはスタックしておいたプロセスIDを見ればわかります。<br /><br />　この辺りまで決まれば次はランチャーです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> -- Posted by 電装工芸 〔506文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=472</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=472</guid>
	<category>tegalog</category>
	<pubDate>Sun, 08 Jan 2023 14:22:17 +0900</pubDate>
</item>

	<!-- END ENTRIES -->
</channel>
</rss>

