glibcのsleep()の実装がどうなっているのか知りたくて、 ソースを眺めていました。 <https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/posix/sleep.c> すると if (__nanosleep (&ts, &ts) < 0) と、__nanosleep()の2つの引数に同じアドレスを与えています。 ここで不安になってきました。 __nanosleep()の2引数に同じアドレスを与えても、問題ないのでしょうか? 例えばstrcpy(s, s)と同じsを与えたら未定義の動作になりますよね。 同じような問題が__nanosleep()で起きたりしないのでしょうか? 今まで問題になったことが無いのだから、害は無いのでしょうが、 モヤモヤするのでお伺いします。 深追いしてみたのですが、 <https://sourceware.org/git/?p=glibc.git;a=blob;f=posix/nanosleep.c> <https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/clock_nanosleep.c> このあたりでどう読んで良いのかわからなくなってきました。 <https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysdep.h> -- Mitsutoshi Nakano <ItSANgo@gmail.com> <bkbin005@rinku.zaq.ne.jp> <https://twitter.com/ItSANgo> <https://launchpad.net/~bkbin005>