Message168566
| Author |
kevin.chen |
| Recipients |
Steve.Thompson, amaury.forgeotdarc, barry, brian.curtin, desolat, eric.araujo, kevin.chen, markon, mucisland, pdsimanyi, pitrou |
| Date |
2012年08月19日.12:50:16 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1345380638.34.0.173578427079.issue6074@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
I propose a fix:
static FILE *
open_exclusive(char *filename, mode_t mode)
{
#if defined(O_EXCL)&&defined(O_CREAT)&&defined(O_WRONLY)&&defined(O_TRUNC)
/* Use O_EXCL to avoid a race condition when another process tries to
write the same file. When that happens, our open() call fails,
which is just fine (since it's only a cache).
XXX If the file exists and is writable but the directory is not
writable, the file will never be written. Oh well.
*/
int fd;
(void) unlink(filename);
fd = open(filename, O_EXCL|O_CREAT|O_WRONLY|O_TRUNC
#ifdef O_BINARY
|O_BINARY /* necessary for Windows */
#endif
#ifdef __VMS
, mode, "ctxt=bin", "shr=nil"
#elif defined(MS_WINDOWS)
, mode | _S_IWRITE
#else
, mode
#endif
);
if (fd < 0 )
return NULL;
return fdopen(fd, "wb");
#else
/* Best we can do -- on Windows this can't happen anyway */
return fopen(filename, "wb");
#endif
}
----------------------
so doesn't matter what the .py file permission is under windows, the .pyc file will always have both read and write permissions. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2012年08月19日 12:50:38 | kevin.chen | set | recipients:
+ kevin.chen, barry, amaury.forgeotdarc, pitrou, eric.araujo, brian.curtin, pdsimanyi, markon, mucisland, Steve.Thompson, desolat |
| 2012年08月19日 12:50:38 | kevin.chen | set | messageid: <1345380638.34.0.173578427079.issue6074@psf.upfronthosting.co.za> |
| 2012年08月19日 12:50:17 | kevin.chen | link | issue6074 messages |
| 2012年08月19日 12:50:16 | kevin.chen | create |
|