PP.*_*PP. 4 c apr apache-portable-runtime
我对 Apache Portable Runtime 库(版本 1.4)进行以下调用:
result = apr_file_open(
&file, // new file handle
pathname, // file name
APR_FOPEN_CREATE | // create file if not there
APR_FOPEN_EXCL | // error if file was there already
APR_FOPEN_APPEND | // move to end of file on open
APR_FOPEN_BINARY | // binary mode (ignored on UNIX)
APR_FOPEN_XTHREAD | // allow multiple threads to use file
0, // flags
APR_OS_DEFAULT |
0, // permissions
pool // memory pool to use
);
if ( APR_SUCCESS != result ) {
fprintf(
stderr,
"could not create file \"%s\": %s",
pathname,
apr_errorstr( result )
);
}
Run Code Online (Sandbox Code Playgroud)
并pathname包含字符串/tmp/tempfile20110614091201.
我不断收到错误“权限被拒绝”(结果代码APR_EACCES),但我有读/写权限/tmp- 可能是什么原因导致的?
我需要APR_FOPEN_WRITE旗帜。我错误地认为APR_FOPEN_APPEND旗帜就足够了。
所以,有效的调用是:
result = apr_file_open(
&file, // new file handle
pathname, // file name
APR_FOPEN_CREATE | // create file if not there
APR_FOPEN_EXCL | // error if file was there already
APR_FOPEN_WRITE | // open for writing
APR_FOPEN_APPEND | // move to end of file on open
APR_FOPEN_BINARY | // binary mode (ignored on UNIX)
APR_FOPEN_XTHREAD | // allow multiple threads to use file
0, // flags
APR_OS_DEFAULT |
0, // permissions
pool // memory pool to use
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2337 次 |
| 最近记录: |