基本上,我需要一个if语句,它的响应依赖于当前的工作目录。
我已经对这个主题做了一些研究,我相信getcwd()函数是我想要的,但是我不知道如何在if语句中与它进行接口。
我对C很陌生,我正在制作的程序需要位于桌面(顺便说一下,它是一个UNIX系统),这样它才能正常运行,if语句需要确定它是否位于上述桌面上。
发布于 2015-03-07 08:02:35
下面的代码在ubuntu上对我有用吗-
#include <stdlib.h>
#include <unistd.h>
#include <limits.h>
int main( void ){
char* cwd;
char buff[PATH_MAX + 1];
cwd = getcwd( buff, PATH_MAX + 1 );
if( cwd != NULL ) {
printf( "My working directory is %s.\n", cwd );
if(strcmp("/home/razib/Desktop", cwd) == 0) {
printf("I'm in Desktop now\n");
}
}
return EXIT_SUCCESS;
} 这里您必须为getcwd()方法提供一个buff[]。buff[]可以用PATH_MAX+1大小声明。PATH_MAX可以在limits.h找到。
希望它能帮到你。
非常感谢。
发布于 2015-03-07 07:11:45
您首先需要将CWD存储在一个字符串中:
char *cwd;
cwd = getcwd(NULL, 0);
if(cwd == NULL) {
// error
return -1;
}
if(strcmp("/whatever", cwd) == 0) {
// same folder
}
free(cwd);https://stackoverflow.com/questions/28912377
复制相似问题