以下代码将列出目录中的所有文件
<?php
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle)))
{
if (($file != ".")
&& ($file != ".."))
{
$thelist .= '<LI><a href="'.$file.'">'.$file.'</a>';
}
}
closedir($handle);
}
?>
<P>List of files:</p>
<UL>
<P><?=$thelist?></p>
</UL>
Run Code Online (Sandbox Code Playgroud)
虽然这是非常简单的代码,但它完成了这项工作.
我现在正在寻找一种方法来列出最后只有.xml(或.XML)的文件,我该怎么做?
我试图在C中以编程方式获取Mac OS X的版本.在搜索了一段时间之后我尝试了这段代码:
#include <CoreServices/CoreServices.h>
int GetOS()
{
SInt32 majorVersion,minorVersion,bugFixVersion;
Gestalt(gestaltSystemVersionMajor, &majorVersion);
Gestalt(gestaltSystemVersionMinor, &minorVersion);
Gestalt(gestaltSystemVersionBugFix, &bugFixVersion);
printf("Running on Mac OS X %d.%d.%d\n",majorVersion,minorVersion,bugFixVersion);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
XCode返回LD错误:
Undefined symbols for architecture x86_64:
"_Gestalt", referenced from:
_GetOS in main.o
我错过了什么?你怎么做到这一点?
我也发现了这个片段
[[NSProcessInfo processInfo] operatingSystemVersionString]
Run Code Online (Sandbox Code Playgroud)
但我不知道怎么用C写的.
我试图检测我是否在Gnome或KDE桌面环境中运行.
我知道我可以通过ps -aux进行检查并且使用gnome或KDE进行检查但这并不好:1)如果我在gnome桌面上但是我加载了KDE库会怎么样?2)我需要从代码中执行它而不使用system()或popen()或其他fork/exec组合.
我可以读取文件或环境.变量或其他.
有任何想法吗?
谢谢,任何帮助表示赞赏.
我正在使用getifaddrs()和inet_ntop()来获取系统上的ip地址.当系统设置为IPv6时,返回的地址是缩短版本(使用:: for zeros).有没有办法将该地址扩展为完整地址?
这是我正在使用的代码:
struct ifaddrs *myaddrs, *ifa;
void *in_addr;
char buf[64];
if(getifaddrs(&myaddrs) != 0)
{
perror("getifaddrs");
exit(1);
}
for (ifa = myaddrs; ifa != NULL; ifa = ifa->ifa_next)
{
if (ifa->ifa_addr == NULL)
continue;
if (!(ifa->ifa_flags & IFF_UP))
continue;
switch (ifa->ifa_addr->sa_family)
{
case AF_INET:
{
struct sockaddr_in *s4 = (struct sockaddr_in *)ifa->ifa_addr;
in_addr = &s4->sin_addr;
break;
}
case AF_INET6:
{
struct sockaddr_in6 *s6 = (struct sockaddr_in6 *)ifa->ifa_addr;
in_addr = &s6->sin6_addr;
break;
}
default:
continue;
}
if (!inet_ntop(ifa->ifa_addr->sa_family, in_addr, buf, …
Run Code Online (Sandbox Code Playgroud) 我有一个带有3个按钮的简单窗口,我正在尝试添加一个系统范围的热键,这样我就可以"按下"这些按钮而无需切换到该应用程序,按下按钮然后回到我正在做的事情.
像Cmd+ Shift+ 1按下按钮1,Cmd+ Shift+ 2按下按钮2等.
有没有办法在Cocoa中实现这一点(使用Objective-C)?谢谢,代码很受赞赏,因为我是Cocoa的新手.
是否有适用于Windows的fnmatch版本?我试图在C中具有相同的功能(基本上在文件名的命令行中使用*),而不必调用FindFirst()等.
代码表示赞赏.
编辑:我需要从命令行接受通配符的文件名,例如*.txt,并能够打开每个.txt文件.
正如我所说,我不想使用FindFirst,FindNext.谢谢
这就是我需要做的:我需要读取XML格式的文档并从中提取元素及其值,例如在以下代码中:
<user name="Mark">
<param name="Age" value="21"/>
<param name="Country" value="NL"/>
</user>
Run Code Online (Sandbox Code Playgroud)
我需要提取:name = Mark,Age = 21和Country = NL.
直到今天我一直在手动进行这种解析,这很痛苦.
现在我不关心文件是"正确的XML"还是所有那些,我不关心DTD或其他标准的XML要求.我只需要阅读并解析这些值.
任何人都知道(lib eXpat除外)一个lib来做这个或代码来做到这一点?谢谢!
枷锁
编辑:
是的,我忘了提到这个平台:Windows和Linux.在普通的C中,而不是C++
我知道之前有人问过,但我在这里看到的情况都不像这个.我在运行时导入一些API函数,这些函数的一般声明如下:
// Masks for UnmapViewOfFile and MapViewOfFile
typedef BOOL (WINAPI *MyUnmapViewOfFile)(LPCVOID);
typedef LPVOID (WINAPI *MyMapViewOfFile)(HANDLE, DWORD, DWORD, DWORD, SIZE_T);
// Declarations
MyUnmapViewOfFile LoadedUnmapViewOfFile;
MyMapViewOfFile LoadedMapViewOfFile;
Run Code Online (Sandbox Code Playgroud)
然后我调用一个通用的"加载"函数,它调用GetProcAddress以从正确的DLL获取导出函数的地址.该地址以无效**返回.此void**是泛型加载中的参数之一,如:
int GenericLoad(char* lib, void** Address, char* TheFunctionToLoad)
Run Code Online (Sandbox Code Playgroud)
我会称之为这个功能:
void *Address;
GenericLoad("kernel32.dll", &Address, "UnmapViewOfFile");
LoadedUnmapViewOfFile = (MyUnmapViewOfFile) Address;
Run Code Online (Sandbox Code Playgroud)
或类似的东西.现在,编译器当然抱怨尝试将数据void*转换为函数指针.那怎么办?
我已经阅读了无数的网站和各种令人讨厌的演员阵容,所以如果你在解释中添加代码,我会很感激.
谢谢Jess
好吧......我对CS数据结构的介绍是如此生疏,我需要在这里提出这个问题.
我有一个链表,其结构是:
struct Data_Struct {
char *Name;
char *Task;
char *Pos;
struct Data_Struct *Next;
};
typedef struct Data_Struct MyData;
Run Code Online (Sandbox Code Playgroud)
现在,在我的应用程序的某个时刻,我用数据填充了列表.
问题是,如何获得存储在那里的数据的总大小?有多少个字符?就像是
sizeof(MyData);
Run Code Online (Sandbox Code Playgroud)
这将返回列表中存储的信息的大小.
代码表示赞赏.
谢谢!
编辑:不幸的是这不是功课.我在20多年前完成了学业,坦率地说,我从来没有在任何事情上使用链接列表.我只是不记得了.我正在做的是迭代列表并获取每个元素的strlen()并将其保持在全局大小但我想知道是否有更好的方法.
和NO,我不需要链接的大小(节点数),我只想知道那里存储了多少个字符.
谢谢
为了呈现正确的菜单文本和UI的其他一些方面,我试图获得当前用户的国家和键盘语言.
我知道语言环境(通过env.变量),但我找不到获取这两个信息的方法.
代码在C for Mac OS X中.我可以使用Cocoa API来获取它们但是需要从C调用它们.任何想法?
谢谢!
我知道你可以使用GetLogicalDrives()和GetDiskFreeSpaceEx()的组合来获取驱动器及其大小的列表.我一直在使用GetDiskFreeSpaceEx()没有问题但是当我尝试使用GetLogicalDrives()时遇到了一个问题:我不想在将它传递给GetDiskFreeSpaceEx之前检查每个可能的字母以查看它是否存在().
是否有更简单的方法来获取系统上的驱动器(磁盘)列表以及它们的大小?我在Windows上使用C语言.
我想说清楚,我知道使用C#和WMI可能更容易,我对此没有兴趣所以请不要将其作为可能的解决方案发布.如果你想指出如何在C和WMI中完成,那就去吧.没有C++或C#谢谢!(就像我在上一个问题中所做的那样)
我有一个半xml格式的文件,其中包含具有以下格式的行:
<param name="Distance" value="1000Km" />
Run Code Online (Sandbox Code Playgroud)
字符串中的第一个字符通常是TAB或空格.我一直在使用以下方法尝试解析两个字符串(从名称和值):
if(sscanf(lineread, "\t<param name=\"%s\" value=\"%s\" />", name, value) == 1)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
名称和值是char*
现在,结果总是一样的:名称得到解析(我需要删除引号),名称总是空的.我究竟做错了什么?
谢谢,代码表示赞赏.
杰西.