• ベストアンサー

shm_open() で作った共有メモリ一覧

shm_open() を使って作ったPOSIX共有メモリオブジェクトの名前の一覧を取得する方法を教えてください。 /dev/shm/ ディレクトリ以下にあることは分かっているのですが、それは今の Linux 固有の実装ですよね? OSや環境が変わったら /dev/shm/ 以下を readdir() する手法は使えない可能性があると思うんですが、かといって他に一覧を取得する方法がわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • trapezium
  • ベストアンサー率62% (276/442)
回答No.1

tmpfs で /var/shm/ 配下に見えるものは知ってますけど、それ以外はまだ一覧機能自体無い OS が多い気がします。そもそも tmpfs や shmfs 使ってライブラリとして実装しなければならないことも無いので、普通にシステムコールとして実装した OS もありますし、通常のファイルシステム上に表われないものもあります。 実行中のプロセスが掴んでいるものは fstat や procstat -f で分かるようです。あと ipcs みたいな専用コマンド追加しようかという議論はされてるの見たことあります。

noboru2000
質問者

お礼

ありがとうございます。やはりないようですね。

関連するQ&A

  • Linux で Posix の共有メモリ

    素人です。教えて下さい。 書籍を参考に、Linux で Posix の共有メモリを使用するプログラ ムを書いたのですが、ライブラリ関数がリンクできません。 shm_open() と、shm_unlink() なのですが、どこのどれをリンク すればいいでしょうか? /usr/lib にはなさそうです。

  • パーティションとディレクトリの違いについて

    LINUXに関する以下の質問について、ご回答をお願いいたします。 (1)パーティションとディレクトリの違いについて教えてください。 (2)パーティションの一覧の表示方法(dfやfdiskコマンドでしょうか?) (3)例えば/runや/devというパーティションがあった場合、同時にディレクトリでもあるという意味で合っていますでしょうか?

  • C言語でのLinuxとwindows共通のファイル一覧取得

    C言語でファイル一覧を読み込む関数を使いたいのですが、 Linuxとwindowsで共通になるようにラッピングAPIを作りたいです。 環境はLinuxはGCC、windowsはVC++6です。 my_opendir()、my_readdir()、my_closedir()というAPIとして、 Linux側はそれぞれopendir()、readdir()、closedir()を 内部で呼べばいいですが、問題はwindowsです。 my_opendir()内部で_findfirst()を呼んでしまうと、 一個目のファイルが読まれてしまいます。 グローバル変数に読まれたデータを保存して、 my_readdir()時の最初の時に読み出す方法も考えたのですが、 これだとリエントラントになりません。 何かいい方法はないでしょうか?

  • 重複行があるファイル一覧を取得したい

    とあるディレクトリ以下(サブディレクトリも含め)に重複行があるファイル一覧を抽出したいです。 Linuxでして、コマンドベースで処理したいです。 お力添えいただけますと幸いです。 宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • ファイル一覧表(LAN内の別PC)

    PHPのあるサーバ(A)、ファイルサーバ(B) サーバ(B)の特定フォルダに画像ファイルが複数存在します。そちらを一覧表示するページを作成したいと思っています。 現在、ファイル取得を行う過程において、サーバ(B)のディレクトリオープンに失敗している状況です。 ---------------<< 以下ソース >>--------------- $target = dirname("./"); if ($dir = opendir($target)) { while (($file = readdir($dir)) !== false) { if ($file != "." && $file != "..") { echo "<A href=\"$file\">$file</A><br>"; } } closedir($dir); } ---------------------------------------------- 上記のように自サーバのディレクトリ指定はいけますが 別サーバの指定がわかりません。 簡単っぽいのですが、宜しくお願いします。

    • ベストアンサー
    • PHP
  • カレントディレクトリ以下全てのフォルダ一覧

    php4.xxシリーズで5ではないです それを使用してカレントディレクトリ以下の、全てのフォルダ一覧は取得できますか? もしくはカレントディレクトリのフォルダ一覧でもいいのですが よろしくお願いします。

    • ベストアンサー
    • PHP
  • Fedoracore5でRAID1が出来ません。。。

    代表落ちしたので、linuxでもやろうかな・・・ doragon_kuboです。よろしくお願いします。 linux初心者で、ここの過去ログも拝見させて頂きましたが、解決には至りません。。。 現状ですが、多数のlinux関連のサイトを参考にしながら、RAIDに設定することは途中まで出来ました。 Filesystem   1K-ブロック   使用  使用可  使用%  マウント位置 /dev/md5   4061540   219848  3632048  6%  / /dev/shm   62272  0  62272   0%  /dev/shm /dev/md6   51904420   17810056  31457704  37%  /home /dev/md1   8254200   1580676  6254232   21%  /usr /dev/md2   8254200  614036  7220872   8%  /var /dev/md0   248783   12937   223002  6%  /boot ------------------------------------------------ これが現状ですが、もし足りない情報がありましたら、追加します。 で、md5のみ、RAIDに参加させようとすると [root@fileserver ~]# mdadm /dev/md5 -a /dev/hda6 mdadm: Cannot open /dev/hda6: Device or resource busy 上記エラーにて参加させられません。 これは、どうしてなんでしょうか? ちなみに、hdbのみでの起動も出来ません。 grubの設定がおかしいのか、他に何か問題があるのかわかりません。 情報不足であれば、ご指摘お願いします。 よろしくお願いします。もうこの状態で2週間近くはまってます。。。

  • ディレクトリ一覧取得方法

    お世話になっております。 現在、WindowsXP Pro を使用しております。 あるディレクトリの中の一覧を取得したいと考えていますが、そういったことができるコマンドってあるのでしょうか? 「例」 実際のディレクトリ構造 C:\ ---| ---|-Test ------| ------|-TEST1 ------|-Test.txt ------| という風になっていた場合、 Test以下のディレクトリとファイル名の一覧を取得したいのです。 また、無い場合はお勧めのツールなどありましたらご教授ください。 よろしくお願い致します。

  • ディスク容量ほぼ100%になってしまいました。容量をあけたいです。

    CentOS4で運用しているサーバーのディスク容量が以下のように98%になってしまいました。 Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/md0 10080364 9344136 224164 98% / /dev/md1 133672704 12724724 114157712 11% /home none 1024684 0 1024684 0% /dev/shm /dev/md2 8064432 3413728 4241056 45% /var なので、98%になっている個所 /dev/md0 に格納されている?ファイルを削除して容量をあけたいと考えていますが、 どのディレクトリのファイルを削除すれば、良いか分からない状況です。 *おそらく /home/hogehoge/ ないのファイルを消しても /dev/md1 の容量が空くだけで /dev/md0 は変わらないと思います。 どこのディレクトリのファイルを消せば、/dev/md0 の容量が空くか調べる方法はありますでしょうか? よろしくお願いいたします。 尚パーティション関連は怖くていじれないので、ファイル削除で対応したいと考えています。

  • ディレクトリ全てのファイルを読み取るには?

    フリーのCGI掲示板を使ってます。ディレクトリ内に複数のログファイルがあるので、一括して編集・削除ができるように管理部分を改造したいのでアドバイスをお願いします。 一応、readdir関数でディレクトリ内にある全てのファイル名を取得でることは分かりましたが、open関数で全てのファイルを読み取らせる方法がわかりません。 open DIR "./log"; @files = readdir DIR; close DIR; #以下、オリジナルのソースです。 open(IN,"$logfile") || &error("Open Error: $logfile"); while (<IN>) { my ($no,$dat,$nam,$eml,$sub,$com,$url,$hos) = split(/<>/); #途中略 } close(IN);

    • ベストアンサー
    • Perl