4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctst note{ check for win32 .exe botches }end output{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync cp(const char* from, const char* to)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync struct stat fs;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync char buf[1024];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if ((fd = _open(from, O_RDONLY|O_BINARY)) < 0)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (_fstat(fd, &fs) || (td = _open(to, O_CREAT|O_WRONLY|O_TRUNC|O_BINARY, fs.st_mode & 0777)) < 0)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _close(fd);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync while ((n = _read(fd, buf, sizeof(buf))) > 0 && _write(td, buf, n) == n);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _close(fd);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync _close(td);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return n ? -1 : 0;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync main(int argc, char** argv)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync struct stat st;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync char buf[256];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync snprintf(buf, sizeof(buf), "rm -rf /tmp/iff-%d", getpid());
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (_mkdir(buf+7, 0755))
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (_chdir(buf+7))
if (_link("foo", "bar") || _access("bar.exe", X_OK))
if (_rename("foo", "aha") || _access("aha.exe", X_OK))
if (sizeof(st.st_ino) == 8)
#include <signal.h>
#include <unistd.h>
#include <time.h>