_lockingのバイト数がよく分からないなー。
#include <stdio.h> #include <io.h> #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <share.h> #include <sys/locking.h> #include <errno.h> #include <windows.h> #define BUFLEN 1024 int main() { int fd; char ftmp[BUFLEN]; GetTempPathA(sizeof(ftmp), ftmp); strcat_s(ftmp, BUFLEN, "lock"); _sopen_s(&fd, ftmp, _O_CREAT | _O_TEMPORARY, _SH_DENYNO, _S_IREAD | _S_IWRITE); puts("try lock."); _locking(fd, _LK_LOCK, 1); printf("locked!\n"); getc(stdin); _locking(fd, _LK_UNLCK,1); _close(fd); return 0; }