Example #1
0
int dir_truncateat(struct dir *dir, const char *filename, uint64_t size)
{
	struct file *file = file_open_rw(dir, filename);
	if (file == NULL) {
		return -1;
	}
	int r = file_truncate(file, size);
	file_close(file);
	return r;
}
Example #2
0
int main(int argc, char** argv)
{
	unsigned char* pucBuf = NULL;
	int nBufSize = 512;
	int nReadFileSize = 0;
	int nWriteCycleBufSize = 0;
	pthread_t tid = -1;
	int nSum = 0;

	CYCLEBUFFERCXT_S* psCycBufCxt = createCycleBuffer(CYCLEBUFFERLEN);
	if (NULL == psCycBufCxt)
	{
		printf("createCycleBuffer failed!\n");	
		return -1;
	}

	if (0 != initCycleBuffer(psCycBufCxt, 0, 0))
	{
		printf("initCycleBuffer failed!\n");	
		return -1;
	}

	nFd = file_open_rw(AUDIOFILEPATH);
	if (-1 == nFd)
	{
		printf("file_open_rw failed!\n");
		if (NULL != psCycBufCxt)
			destroyCycleBuffer(psCycBufCxt);
		return -1;
	}

	originFileSize = file_getSize(nFd);
	printf("%s size is %d\n", AUDIOFILEPATH, originFileSize);

	pucBuf = (unsigned char*)malloc(sizeof(unsigned char)*nBufSize);
	if (NULL == pucBuf)
	{
		printf("file_open_rw failed!\n");
		if (NULL != psCycBufCxt)
			destroyCycleBuffer(psCycBufCxt);

		file_close(nFd);
		return -1;
	}

	if (0 != pthread_create(&tid, NULL, doThread, (void*)psCycBufCxt))
	{
		printf("create pthread failed!\n");
		if (NULL != psCycBufCxt)
			destroyCycleBuffer(psCycBufCxt);

		file_close(nFd);
		return -1;
	}


	while(1)
	{
		nReadFileSize = file_read(nFd, pucBuf, nBufSize);

		nWriteCycleBufSize = writeCycleBuffer(psCycBufCxt, pucBuf, nReadFileSize);
		if (-1 == nWriteCycleBufSize)
		{
			printf("writeCycleBuffer failed!\n");	
		}
		printf("write cycle buffer nWriteCycleBufSize=%d\n", nWriteCycleBufSize);

		nSum += nReadFileSize;
		if (nSum == originFileSize)
			break;
		sleep(1);
	}
	printf("read file over!\n");


	pthread_join(tid, NULL);

	if (NULL != psCycBufCxt)
		destroyCycleBuffer(psCycBufCxt);

	file_close(nFd);

	return 0;
}