0 C语言文件操作
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h> // uint16_t
//
// 打开文件
FILE *fp = fopen("file_name.txt", "wb");
// 错误检查
if (fp == NULL) {
perror("open file failed.");
return;
}
//注意fputc,是按照二进制输入到文件中。比如,int number = 'A';则文件的这一位,byte就是A的ASCII码,打开这个文件,显示的就是'A'。
int c = (int) temp; // not char!
fputc(c, file);
fputc(number, fp);
// 按顺序从文件中获取字符
fgetc(fp);
//判断数字是否是ASCII码,能否被打印
isprint(character);
// 字符串数组转数字
atoi(argv[i])
// 将之前标准输出的内容,输出到文件中。注意和fputc()区别。将数字的每一位都输出到文件中
sprintf(str_number,"%d",i);
fputs(str_number, fp);
//
char buffer[257] = {
'\0'};
fgets(buffer, 256, stdin);
//关闭文件
fclose(fp);
1 mips关于文件操作的系统调用参数
2 C语言添加权限的系统调用
char permission[5] = {
"777"};
char * end;
// rw-rwx---
// 110 111 000
// chmod 670 test.sh
// chmod 777 test.sh
// rwxrwxrwx 111
// chmod 411 test.sh
// 1-- 001 001
//r-- --x --x
int map[256] = {
0};
map['r'] = 4;
map['w'] = 2;
map['x'] = 1;
map['-'] = 0;
for (int i = 0; i < 3; i++) {
int num_temp = 0;
for (int j = 0; j < 3; j++) {
//printf("%c", one_egglet[i * 3 + j + 3]);
num_temp += map[(int)one_egglet[i * 3 + j + 3]];
}
permission[i] = num_temp + '0';
}
// for (int i = 0; i < 3; i++) {
// //printf("chmod : %c",permission[i]);
// }
// 8. set permission
//puts(permission);
mode_t mode = strtol(permission, &end, 8);
if (permission[0] == '\0' || end[0] != '\0') {
fprintf(stderr, ": invalid mode: %s\n", permission);
return;
}
//puts(mode);
if (chmod(path_name, mode) != 0) {
perror(path_name); // prints why the chmod failed
return;
}