Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

cleanpath("/foo/bar/baz") = "/foo/bar/baz"
cleanpath("/foo/bar///baz/") = "/foo/bar/baz/"
cleanpath("/foo/bar/baz/") = "/foo/bar/baz/"
cleanpath("/foo/bar/baz//") = "/foo/bar/baz/"
cleanpath("/foo/bar/baz/.") = "/foo/bar/baz/."
cleanpath("/foo/bar/baz/./") = "/foo/bar/baz/"
cleanpath("/foo/bar/../../baz/.//") = "/baz/"
cleanpath("foo/bar/./././././baz/") = "foo/bar/baz/"
cleanpath("/foo/bar/baz/../../../../../../") = "/"
cleanpath("/../../../../../../") = "/"
cleanpath("/./") = "/"
cleanpath("/foo/bar/baz/../../bop/bang/../../bar/baz/") = "/foo/bar/baz/"
cleanpath("./") = "./"
cleanpath("//") = "/"
cleanpath("/.") = "/."
cleanpath("/./") = "/"
cleanpath("/./.") = "/."
cleanpath("/.//") = "/"
cleanpath(".") = "."
cleanpath("/////") = "/"
cleanpath("") = ""