• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:perl readlink 返り値にゴミ文字が・・・)

perl readlink 返り値にゴミ文字が・・・

このQ&Aのポイント
  • perlのreadlinkを使用すると返り値にゴミが付与された状態になり困っています。mysqlのバージョンアップを実施し、prelinkを起動し、readlinkにて返り値を確認するとゴミ文字が付与されてしまいます。
  • readlinkは返り値にゴミ文字を付与してしまう理由、prelinkを実行するとreadlinkの不具合が発生する理由について教えてください。
  • bindのバージョンアップを実施してprelinkを起動させた場合、readlinkの返り値にゴミ文字が混ざらなかった理由を教えてください。

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

  • ベストアンサー
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

挙げられた URL を読むと、perl の readlink は C の readlink 相等の ものなので、不具合ではなく仕様どおりではないかという流れです。 C の readlink だと有効な長さも返されるのでどこまでが、有効な文字列 かわかるのですが、perl の readlink では長さは返ってこないようです ね。 まぁ、perl の readlink はこういう風になっているので、それに対応した 使い方をしようということのようですね。 対策は、有効な文字列の終わりを示す NULL("\0")文字以降を削除 してしまえばよいです。 $i = readlink ( ... ); $i =~ s/\0.*//; で、よいと思います。

tols_777
質問者

お礼

t-okuraさん ご回答ありがとうございます。 確かに運用の中で対処していけばいいんですよね。 readlinkに関しては検討しようと思います。 今回、prelinkを実行するとゴミ文字がついてしまうので prelinkのバグ(?)とも考えているんですが、何故prelinkを実行すると ゴミ文字がつくかは未だに謎です・・・ ただ、prelinkに関してはこれ以上回答がなさそうなので 締め切ろうと思います。 ありがとうございました!

関連するQ&A