API Append .txt

本文详细介绍了如何使用C++获取本地时间,并将其转换为指定格式后写入到.txt文件中。代码包括了时间的获取、格式化以及文件操作的基本流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <windows.h>
#include <stdio.h>

void main()
{
/*	//取随机数
	srand((unsigned)time(0)); 
	g_iRand = rand();
*/
	char bufTime[128] = {0};
	SYSTEMTIME nowTime;
	GetLocalTime(&nowTime);
	sprintf(bufTime, "%4d-%02d-%02d %02d:%02d:%02d.%03d", 
		nowTime.wYear, nowTime.wMonth,  nowTime.wDay,
		nowTime.wHour, nowTime.wMinute, nowTime.wSecond, nowTime.wMilliseconds);
	
	printf("%s\n", bufTime);

// *** ***
// 写文件
	char szFileName[MAX_PATH] = {0};
	::GetModuleFileName(0, szFileName, MAX_PATH);
	char *pTxt = ".txt";
	strcat(szFileName, pTxt);
	printf("%s\n", szFileName);

	HANDLE hFile = CreateFile(
		szFileName,
		GENERIC_READ | GENERIC_WRITE,
		FILE_SHARE_WRITE,
		NULL,
		OPEN_ALWAYS,
		FILE_ATTRIBUTE_NORMAL,
		NULL);
	if (INVALID_HANDLE_VALUE == hFile)
	{
		printf("CreateFile INVALID_HANDLE_VALUE : %d\n", GetLastError());
		return;
	}

	SetFilePointer(hFile, 0, NULL, FILE_END); // 移至文件末尾
	int iLen = strlen(bufTime);
	bufTime[iLen]   = 0x0D;
	bufTime[iLen+1] = 0x0A;
	bufTime[iLen+2] = 0;

	DWORD dwWritten = 0;
	if (0 == WriteFile(hFile, bufTime, iLen+2, &dwWritten, NULL))
	{
		printf("WriteFile err : %d\n", GetLastError());
		::CloseHandle(hFile);
		return;
	}

	if (dwWritten != ((DWORD)(iLen+2)))
	{
		printf("WriteFile 'dwWritten != iLen+2' : %d (dwWritten : %d - iLen+2 : %d)\n", 
			GetLastError(), dwWritten, iLen+2);
		::CloseHandle(hFile);
		return;
	}
	::CloseHandle(hFile);
}


 

Hadoop HDFS常用Shell命令及实验步骤 一、环境准备 1. 确保Hadoop集群已启动(NameNode、DataNode) 2. 本地创建测试文件: Bash   echo "Hello Hadoop" > test.txt  二、文件上传 1. 命令格式 Bash   hadoop fs -copyFromLocal <本地路径> <HDFS路径> # 或使用 -put 2. 示例 将test.txt上传到HDFS根目录: Bash   hadoop fs -copyFromLocal ./test.txt /test.txt 3. 验证 Bash   hadoop fs -ls / # 查看根目录文件列表[^3]  三、文件下载 1. 命令格式 Bash   hadoop fs -copyToLocal <HDFS路径> <本地路径> # 或使用 -get 2. 示例 下载HDFS的/test.txt到本地: Bash   hadoop fs -copyToLocal /test.txt ./downloaded.txt 3. 验证 Bash   cat downloaded.txt # 输出应为"Hello Hadoop"[^1]  四、内容追加 1. 命令格式 Bash   hadoop fs -appendToFile <本地文件> <HDFS文件> 2. 示例 追加本地append.txt到HDFS的/test.txt: Bash   echo "New Content" > append.txt hadoop fs -appendToFile append.txt /test.txt 3. 验证 Bash   hadoop fs -cat /test.txt # 应包含追加内容  五、文件删除 1. 命令格式 Bash   hadoop fs -rm <HDFS路径> # 删除文件 hadoop fs - rm -r <HDFS目录路径> # 递归删除目录 2. 示例 删除HDFS的/test.txt: Bash   hadoop fs -rm /test.txt 3. 验证 Bash   hadoop fs -ls / # 文件应不存在  六、权限查看与修改 1. 查看权限 Bash   hadoop fs -ls -d / # 显示根目录权限[^3] 输出示例: drwxr-xr-x - user supergroup 0 2023-10-01 12:00 / 2. 修改权限 Bash   hadoop fs -chmod 755 /test.txt # 设置读写执行权限  七、其他操作 1. 复制文件 Bash   hadoop fs -cp /test.txt /backup/test.txt # 跨路径复制[^2] 2. 创建目录 Bash   hadoop fs -mkdir /bigdata # 创建新目录[^3] 5. 给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息; 6. 提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录; 7. 提供一个HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,如果目录文件所在目录不存在则自动创建相应目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录;3. 将HDFS中指定文件的内容输出到终端中;在上面的基础上重点完成一下下面的内容 8. 向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾; 9. 删除HDFS中指定的文件; 10. 在HDFS中,将文件从源路径移动到目的路径。
最新发布
03-20
<think>好的,用户想了解Hadoop HDFS常用的Shell命令及其用法,包括文件上传、下载、追加、删除和权限管理等功能。首先,我需要回忆HDFS Shell的基本命令,并确保覆盖用户提到的所有操作。 首先,文件上传通常使用`-put`或`-copyFromLocal`,下载则是`-get`或`-copyToLocal`。用户可能还需要知道如何追加内容到HDFS文件,这应该用`-appendToFile`命令。删除文件使用`-rm`,而删除目录可能需要递归选项`-rm -r`。权限管理方面,`-chmod`、`-chown`和`-chgrp`是关键命令,需要分别说明。 接下来,用户要求详细的实验步骤,可能需要分步骤说明每个命令的使用示例,比如创建目录、上传文件、查看内容、移动文件、删除等。同时,用户提到了参考引用,需要正确关联相关的引用来源。例如,引用[3]提到了`-mv`命令,引用[5]提到了`-put`,引用[4]提到了`-rm`,这些都需要在相应部分标注引用。 另外,用户可能对权限设置的具体语法不太清楚,需要举例说明,比如使用八进制模式或符号模式修改权限。同时,需要注意HDFS的权限模型可能与本地文件系统有所不同,需要简要说明。 还需要考虑用户的实际操作环境,比如是否需要先启动Hadoop服务,或者如何进入HDFS Shell。可能需要在实验步骤中加入环境准备的部分,比如启动HDFS,验证服务状态等。 最后,生成相关问题时要围绕HDFS Shell命令的进阶使用、性能优化、权限管理细节以及与其他工具的比较等方面,帮助用户深入学习和解决问题。需要确保问题覆盖用户可能感兴趣的扩展知识点,并引用已有的参考资料,如引用[2]提到的API操作和项目实践。</think>### Hadoop HDFS Shell命令大全及实验步骤说明 #### 一、文件操作命令 1. **文件上传** - `-put`:将本地文件上传到HDFS(等同于`-copyFromLocal`) ```bash hadoop fs -put local_file.txt /hdfs/path/ # 上传文件[^5] ``` - `-copyFromLocal`:同上,但严格限制源为本地路径 ```bash hadoop fs -copyFromLocal local_file.txt /hdfs/path/ ``` 2. **文件下载** - `-get`:从HDFS下载文件到本地(等同于`-copyToLocal`) ```bash hadoop fs -get /hdfs/path/file.txt local_dir/ # 下载文件 ``` 3. **追加内容** - `-appendToFile`:将本地文件追加到HDFS文件末尾 ```bash hadoop fs -appendToFile new_data.txt /hdfs/path/file.txt ``` 4. **删除文件** - `-rm`:删除HDFS文件或目录(需递归删除目录时加`-r`) ```bash hadoop fs -rm /test/wuguo.txt # 删除文件[^4] hadoop fs -rm -r /old_dir/ # 递归删除目录 ``` #### 二、目录操作命令 1. **创建目录** ```bash hadoop fs -mkdir /new_dir ``` 2. **查看目录内容** ```bash hadoop fs -ls /hdfs/path/ # 显示详细信息 hadoop fs -ls -h /path/ # 人类可读格式 ``` 3. **移动/重命名文件** ```bash hadoop fs -mv /sanguo/weiguo.txt /jinguo # 移动文件[^3] ``` #### 三、权限管理命令 1. **修改权限** ```bash hadoop fs -chmod 755 /hdfs/file.txt # 八进制模式 hadoop fs -chmod u+x /hdfs/script.sh # 符号模式 ``` 2. **修改所有者** ```bash hadoop fs -chown newuser:newgroup /hdfs/file.txt ``` #### 四、完整实验步骤 1. **环境准备** ```bash start-dfs.sh # 启动HDFS jps # 验证NameNode/DataNode ``` 2. **基础操作流程** ```bash hadoop fs -mkdir /test # 创建目录 hadoop fs -put data.txt /test # 上传文件 hadoop fs -cat /test/data.txt # 查看内容 hadoop fs -mv /test/data.txt /backup/ # 移动文件 hadoop fs -rm -r /test # 删除目录[^4] ``` 3. **权限实验** ```bash hadoop fs -chmod 700 /secret # 限制访问权限 hadoop fs -ls /secret # 验证权限变更 ``` #### 五、注意事项 1. 路径需以`/`开头表示HDFS根目录 2. 删除操作前建议先执行`-ls`确认路径 3. 所有命令支持通配符(如`*`)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值